假设我two ejabberd server
认为X
和Y
具有相同的来源,我使用this为这些服务器进行了ejabberd群集。现在考虑将A
和B
视为用户,并将其连接到X server
。 A和B都处于ONLINE
状态,并且通过X server
连接。如果假设X服务器因某些问题而获得shutdown
或crashed
。在此场景中,A
和B
是OFFLINE
状态还是A
和B
处于ONLINE
状态,由{{Y
状态处理1}}服务器。我不知道我的想法是否正确。如果有人给我关于它的建议。
答案 0 :(得分:0)
如果您有不同物理位置的节点,则应将它们设置为单独的群集(即使它是1个节点的群集)并将它们联合起来。群集应仅在数据中心级别完成,因为群集中的所有节点之间存在mnesia事务锁定(例如,创建MUC会议室)。
答案 1 :(得分:0)
“负载平衡”不是您在问题中描述的内容。
在负载平衡中,传入连接以平衡方式分布在多个节点上。这样就不会有任何一台服务器负载过高(因此称为“负载平衡”)。如果您的负载均衡器足够智能以检测和删除死节点,它还可以提供故障转移功能。
只要群集中至少有一个工作节点,智能负载均衡器就可以使新连接始终成功。但是,在您的问题中,您谈到客户“维持连接”。这是完全不同的。
要做到这一点,您需要连接是无状态的,或者您需要每个客户端连接到所有节点。这不是XMPP的工作原理:它是与单个服务器的有状态连接。如果客户断开连接,您必须依赖客户重新连接。