現象:
RabbitMQGUIに表示されます
ネットワークパーティションが検出されました
Mnesiaは、このRabbitMQクラスターでネットワークパーティションが発生したと報告しています。データを失うリスクがあります。ネットワークパーティションと可能な解決策については、RabbitMQのドキュメントをお読みください。
2つのRabbitMQノードは相互に認識できません。
原因分析:
これは、クラスター内でスプリットブレインを引き起こすネットワークの問題が原因です。
通常の状況では、rabbitmqctl cluster_statusコマンドで表示される情報のパーティション項目は、次のように空です。
# rabbitmqctl cluster_status
Cluster status of node rabbit@smacmullen ...
[{nodes,[{disc,[hare@smacmullen,rabbit@smacmullen]}]},
{running_nodes,[rabbit@smacmullen,hare@smacmullen]},
{partitions,[]}]
...done.
ただし、ネットワークパーティションが発生すると、次のようになります。
# rabbitmqctl cluster_status
Cluster status of node rabbit@smacmullen ...
[{nodes,[{disc,[hare@smacmullen,rabbit@smacmullen]}]},
{running_nodes,[rabbit@smacmullen,hare@smacmullen]},
{partitions,[{rabbit@smacmullen,[hare@smacmullen]},
{hare@smacmullen,[rabbit@smacmullen]}]}]
...done.
解決:
問題のあるノードで実行します。sbin/ rabbitmqctl stop_app
問題のあるノードで実行 します。sbin/ rabbitmqctl start_app
注:mqクラスターはkill -9を使用してプロセスを強制終了 できません。そうしないと、プロデューサーとコンシューマーはmqの切断を識別できません。時間、それは生産者と消費者の通常のビジネス処理に影響を与えます。