如何做正确的ejabberd集群负载均衡?

时间:2014-07-27 10:08:00

标签: erlang xmpp ejabberd

我已按照同一域(talk.example.com)中的步骤here设置了一个群集(node1和node2)。

我已经使用两个客户端测试了集群,这两个客户端连接到不同节点的ip(不是域talk.example.com)。但是,如果我希望客户端连接到DNS记录(talk.example.com),而不是群集中节点的IP,我想知道如何在群集中分发客户端?

DNS循环?我不知道这对同一客户端是否有效,如果不同的ip为同一客户端返回,因为XMPP协议是有状态的。还是Linux虚拟服务器?我以前从未尝试过这个。

我已阅读Service Load-Balancing,但哪个节点将是前端(客户端将连接到哪个节点)?

1 个答案:

答案 0 :(得分:2)

您必须使用DNS平衡或负载均衡器,例如haproxy,或者两者都使用。

DNS实际上是最简单的,但您需要记住它是SRV记录_xmpp-client._tcp。{您的域}必须是平衡的,而不是您的真实域。