HAProxy appsession vs cookie优先

我试图find最佳的解决scheme来平衡和保持HAProxy背后的应用程序的持久性。

这里是我们的基本configuration: https : //gist.github.com/endzyme/1804046b23c37beba520

在玩弄成员并且重新加载haproxy(带-sf)之后,我注意到appsession并不是100%有效的,有时它并不总是'request-learn' 。 我也尝试添加一个cookie JSESSION prefix来平衡的情况下request-learn没有采取。

不幸的是,它会出现前缀列出svr2的场景,但是它被平衡到了不同的服务器。 我假设这是因为在使用cookie参数之前,appsession表首先使用该表。 我还没有使用cookie作为插入选项进行testing(不是现有的cookie上的前缀),但我想这将产生类似的结果。

我的问题是: 首先检查哪一个,appsession或cookie,并且在它读取第一个或者通过一个下降之后立即被捕获? 也作为后续 – 是不是build议在同一个后端使用两个?

据我所知,Cookie占用较less的内存资源,不可知重新加载并具有更好的持久性可靠性。 Appsession我认为需要更less的CPU资源,因为它读取不写。

(奖金问题:有没有办法检查appsession / cookie表映射?socket> show table不显示任何东西,除了stick-tables)

提前谢谢了,

-缺口

在与Exceliance伙伴(谁帮助开发HAProxy)会面后,我有更多的信息。

没有得到一个明确的答案,首先检查哪一个,但很明显,你应该使用cookie或使用粘贴表。 这两种方法都可以通过重新加载HAProxy来坚持。 他们还告诉我们,appsession被标记为deprication并使用cookie或stick-tables与cookie。 Appsession在内存中使用一个散列表,它不是通过重载持久化的,有一些发现机制,但是不可靠。

Exceliance还提到,cookie和appsession不会太多。 没有一种方法来检查服务器哈希的应用程序的地图。 使用cookie并检查日志或cookie本身或者使用stick-tables更有效 – socket> show表将用于检查持久性。