我有一个 HAproxy 实例用作 BOSH(http-bind,http://xmpp.org/extensions/xep-0206.html)服务器的负载均衡器。它使用“循环”负载平衡方法运行,但我尝试了一些问题,当某些实例出现故障时,所有连接都重新分配到活动实例。当死亡节点再次出现时,它们没有与其他实例相同数量的连接,并且它们没有使用相同的资源。如果其他实例宕机,会话将重新分配,一些服务器将超载,而另一些在限制范围内运行的服务器宕机,因此所有服务都中断,我需要同时重启所有实例才能按顺序尝试可以均匀地重新分配会话。
我正在阅读有关如何使用 HAproxy 配置 BOSH 负载平衡的信息,我发现了这本书:“Professional XMPP Programming with JavaScript and jQuery”。在本书中作者推荐我们可以使用“leastconn”作为Haproxy的平衡方法。
HAproxy 文档说我们不应该对 HTTP 连接使用“leastconn”,但它说我们应该在需要很长会话的地方使用它。
我认为这种平衡方法可以帮助解决服务器宕机时的问题,因为它会在活动节点中平均重新分配会话,并且当实例再次启动时,所有新会话都将转到该实例,直到它具有与其他服务器相同数量的会话。
有没有人有这种配置的经验?为了平衡 BOSH 连接,您向我推荐了哪些 HApoxy 设置或调整?