2016-08-24 13 views
0

このノードは3つのノードを持ち、「HAモードはすべて」です。すべてのノードを停止しようとすると、まず2つのスレーブノードを停止し、マスターノードを停止します。マスタノードが故障して起動できないとします。私はrabbitmqctl force_bootセットアップスレーブノードを使用して、私はキューの状態がダウンしていることがわかりました。rabbitmqクラスタがすべてダウンし、最初のスレーブノードがキューにダウンしたとき

私はこれが正しいとは思わない。私は、スレーブノードの設定がマスターになり、キューが利用可能だと思います。メッセージが失われているかどうかは考慮しないでください。

しかし、最初にマスターノードを停止し、新しいマスターノードを停止し、最後のノードを終了します。任意のノードを設定することができます。 rabbitmqctl force_boot任意のノードを使用できます。

+1

それが再現可能ですか?私はあなたがこの問題を時間内に持っていたことを意味しますか?それはテストですか?ログを投稿することはできますか?この質問をhttps://groups.google.com/forum/#!forum/rabbitmq-usersに転送することをおすすめします – Gabriele

答えて

0

あなたは同期化されていないスレーブになってしまい、デフォルトではRabbitMQは制御されたマスターシャットダウン時に非同期スレーブにフェールオーバーすることを拒否します。唯一の非同期スレーブ

とマスター・ノードを停止

それはあなたがマスターノードをシャットダウンすると、利用可能なすべてのスレーブが非同期であることことが可能です。これが発生する可能性のある一般的な状況は、ローリングクラスタのアップグレードです。デフォルトでは、RabbitMQは、制御されたマスタシャットダウン(すなわち、RabbitMQサービスの明示的停止またはOSのシャットダウン)で、メッセージの損失を避けるために、非同期スレーブへのフェイルオーバを拒否します。代わりに、非同期スレーブが存在しないかのようにキュー全体がシャットダウンします。制御不能なマスターシャットダウン(すなわち、サーバまたはノードクラッシュ、またはネットワーク停止)は、非同期スレーブに対してもフェールオーバーを引き起こす。

すべての状況でマスターノードを非同期のスレーブにフェールオーバーさせたい場合(つまり、メッセージの損失を避けるためにキューの可用性を選択する場合)、ハフプロモートオンシャットダウンポリシーキーをalwaysデフォルト値のwhen-syncedではなく

https://www.rabbitmq.com/ha.html

関連する問題