如何设置冗余ejabberd服务器?

我目前有一个运行在域A的ejabberd服务器。 它有一大堆像xyz@A这样的账号的用户。 我想设置替代服务器,以便如果Aclosures,客户端可以透明地使用替代服务器BC (因此,仍然使用他们的xyz@A帐户)。

我认为DNS部分非常简单,我需要编辑A区域文件来添加替代服务器的SRVlogging,就像这个例子( http://wiki.xmpp.org/web/SRV_Records#Example_3 ):

 _xmpp-client._tcp.example.net. 86400 IN SRV 5 50 5222 server1.example.net. _xmpp-client._tcp.example.net. 86400 IN SRV 10 30 5222 server2.example.net. _xmpp-client._tcp.example.net. 86400 IN SRV 10 10 5222 server3.example.net. _xmpp-client._tcp.example.net. 86400 IN SRV 10 10 5222 server4.example.net. _xmpp-client._tcp.example.net. 86400 IN SRV 15 0 5222 backup.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 5 50 5269 server1.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 10 30 5269 server2.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 10 10 5269 server3.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 10 10 5269 server4.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 15 0 5269 backup.example.net. 

在主机BC上设置ejabberd服务器的步骤和具体configuration是否需要authentication和聊天室?

尽pipe使用A的初始用户数据库工作的冗余服务器就足够了(我不希望A长时间停机),理想情况下,我认为我应该在所有3台服务器之间同步用户数据库,这样如果有人开一个账户在A被closuresA时候, B可以在后面loginA ejabberd提供了一个机制吗?

编辑:解决scheme需要处理这些约束/用例:

  • 您可以透明地连接到群集的任何节点
  • 如果至less有一个节点启动(无单点故障)
  • 通过互联网工作(潜在的高延迟)