0

I have simple RabbitMQ cluster with 2 physical identical linux nodes: (CentOS, RabbitMQ 3.1.5, Erlang R15B, 2GB Ram, CPU 1xCore). Mirroring and synchronization of nodes is turned on.

I have two problems which bothers me:

  1. In a normal situation everything is fine, but after restarting one of the nodes(by stop_app and start_app in the commandline) the whole cluster becomes unavaible to producers and consumers - I can't produce or receive messages from a queue during synchronization. Is this situation normal?

  2. During synchronization I observed very high CPU load (almost 100%) on the slave node(that which was restarted). I measured the speed of synchronization - it's dramatic low (synchronization of 2 millions of messages takes above 3 hours). It's strange because producing of such amount takes much less. Is this situation normal too?

4

1 に答える 1

2

私は最近、仕事でRabbitMQを調査する任務を負っているため、ドキュメントに深く関わっています。

  1. 同期するときはこのようになります。これは、RabbitMQ HA ドキュメントの抜粋です

    キューが自動的に同期するように設定されている場合、新しいスレーブが参加するたびに同期され、参加するまで応答しなくなります。

  2. メッセージがディスクから読み取られ、(選択またはメモリ制限によって) ディスクに永続化される場合、オーバーヘッドが発生する可能性があります。このブログ エントリのグラフ (コメントの前の最後のグラフ) を見ることができます。これは、多くのメッセージのキューから読み書きするときにパフォーマンスの変化があることを示しています。これらのチャートは、RabbitMQ の古いバージョンのものですが、最近のものは見たことがありません。
お役に立てれば!

于 2013-10-02T13:11:42.390 に答える