将xmppstream量负载均衡到后端的多个节点

我有用户像xmpp.host.com端点。 然而,在内部,我想在xmpp1.host.com,xmpp2.host.com之间分配负载…什么是最好的方式做到这一点,而不必在xmpp服务器本身内移动这个逻辑

顺便说一句,我现在正在使用ejabberd。

我build议使用基于DNS的负载均衡。 通过定义多个SRVlogging ,不仅可以实现负载均衡,而且可以根据需要分配这些logging(例如,您可能希望容量较大的服务器上的负载的60%,剩下的容量更小),但是您也可以定义故障转移服务器。

像ejabberd这样的XMPP服务器的SRV查询可能如下所示:-xmpp_client._tcp.yourdomain

最好的方法是让xmpp.host.com成为负载平衡器上的VIP,并设置某种粘滞负载平衡或基于客户端-IP的哈希,以便来自客户端的请求返回到之前login到的同一台服务器,这样您就不必在XMPP服务器之间传输状态信息。