現在、ドメインA
でejabberdサーバーを実行しています。 xyz@A
のようなアカウントを持つユーザーがたくさんいます。 A
がダウンした場合に、クライアントが代替サーバーB
およびC
を透過的に使用できるように代替サーバーをセットアップしたいと思います(したがって、xyz@A
アカウントを引き続き使用します)。
DNSの部分は非常に単純だと思います。この例のように、A
ゾーンファイルを編集して、代替サーバーのSRV
レコードを追加する必要があります( http://wiki.xmpp.org/web/SRV_Records#Example_ =):
_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.
ホストB
およびC
w.r.t認証およびチャットルームでejabberdサーバーをセットアップするための手順と特定の構成は何ですか?
A
の初期ユーザーデータベースで冗長サーバーを操作するだけで十分ですが(Aが長時間ダウンすることはないと思います)、理想的には、誰かがアカウントを作成した場合に、3つのサーバーすべての間でユーザーデータベースを同期する必要があると思いますB
がダウンしているときにA
をオンにすると、後でA
がバックアップされたときにログオンできます。 ejabberdはそのためのメカニズムを提供しますか?
編集:ソリューションはこれらの制約/ユースケースで機能する必要があります:
ここでクラスタリングガイドに従う必要があります http://docs.ejabberd.im/admin/guide/clustering/