2012-10-05 12 views
0

我有一个HAproxy实例用作BOSH(http-bind,http://xmpp.org/extensions/xep-0206.html)服务器的负载均衡器。它使用“roundrobin”负载平衡方法运行,但我尝试了一些问题,当某些实例关闭时,所有连接都重新分配给活动实例。当死亡节点再次出现时,它们没有与其他实例相同的连接数量,并且它们没有使用相同的资源。如果其他实例发生故障,会话将被重新分配,并且一些服务器将被重载并且其他一些正在运行的服务器将停止运行,因此所有服务都会中断,并且需要按顺序同时重新启动所有实例尝试这些会话可以均匀地重新分配。在HAproxy中设置“leastconn”作为负载平衡方法来处理BOSH连接是个好主意吗?

我在阅读关于如何使用HAproxy配置BOSH负载平衡,并发现本书:“使用JavaScript和jQuery进行专业XMPP编程”。在这本书中,作者建议我们can use "leastconn" as balance method for Haproxy

HAproxy文档说,我们不应该对HTTP连接使用“leastconn”,但它说我们应该在需要非常长的会话的地方使用它。

我认为这种平衡方法可以帮助解决服务器故障时的问题,因为它会在活动节点中平均地重新分配会话,并且当实例再次启动时,所有新会话都会转到该实例直到它具有与其他服务器相同数量的会话。

有没有人在这种配置的一些经验?为了平衡BOSH连接,你推荐我做什么HApoxy设置或调整?

回答

1

如果您的会话很长,并且他们可能在阅读SMPP时,那么leastconn将提供比roundrobin更好的负载平衡。 Roundrobin适用于非常短的连接。

欢呼声