3 つのノードを持つ RabbitMQ クラスター (バージョン 3.0.1) があります。使用可能な 3 つのノードすべてに常にキューが存在するようにします。
次のようにクラスターを作成します。
node1:
node2: rabbitmqctl join_cluster rabbit@node1
node3: rabbitmqctl join_cluster rabbit@node1
この後、次のポリシーを設定します。
パターン: ^(?!amq.).*
定義: ha-mode: all
ここで 3 つのノードを開始し、ノードの 1 に somethink を書き込むと、3 つすべてにそれがあり、動作します。ただし、ノードの 1 つへの接続が切断され、ノードがしばらくしてから復帰すると、このノードは他のノードと同期されなくなります。
どうすればこれを解決できますか? ダウンタイムの後でも、すべてのノードが常に同期されるようにしたいと考えています。