上下文:
我的系统需要支持分布在 100 个聊天室中的 20,000 个联网聊天用户。在性能测试期间,我发现在获得故障转储之前,我可以在单个设备上获得最多 6,000 个连接的用户,因此在生产中我可能会在集群中使用四台服务器。
我的问题:
据我所知,聊天室绑定(bind)到服务器节点,因此,如果该节点死亡,聊天室也会随之消失,并且用户不再属于该房间。有没有办法将聊天室“复制”到另一个节点,以便留下的用户移动到复制的房间?如果没有,您如何保持用户的连续性?
最佳答案
您使用什么硬件? 6000 个连接用户似乎有点少。另外,ejabberd 不应该在负载下崩溃。它可能会减慢速度,但不会崩溃。
您的设置有问题。
关于复制聊天室节点,这并不容易。最好在客户端处理平滑重连。
但话又说回来,ejabberd 不应该在这种负载下崩溃,除非出现问题。
关于erlang - 关于如何处理 ejabberd 集群中的故障转移有什么建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4132165/