2016-04-06 3 views
2

私はHAproxy Load Balancerの背後にRabbitmqの3ノードクラスタを持っています。ノードをシャットダウンすると、Rabbitmqは正常にキューを他のノードに切り替えます。しかし、再起動しない限り、Logstashはキューからメッセージを引き出すのを止めています。これはrabbitmqの動作方法に問題がありますか?すなわち、アクティブなすべての消費者を非アクティブにする。ログstashに再試行機能があるかどうかはわかりません。誰でもこの問題にぶつかりますか?rabstmqクラスタを持つLogstash

+0

私は同じ問題を抱えていますが、解決策は見つかりましたか? –

答えて

2

何をして複製されている最初のclustering

用ウサギのMQの資料、ページを引用? RabbitMQブローカの操作に必要なすべてのデータ/状態は、すべてのノードにわたって複製されます。この の例外は、デフォルトでは1つのノードに常駐するメッセージキューです。 はすべてのノードから表示され、到達可能です。

high availability

ミラーリングされたキューから消費しているクライアントは、彼らが消費してきたこれからのキューがオーバー失敗した ことを知りたいことがあります。 ミラーリングされたキューがフェールオーバーすると、どのメッセージが、どのコンシューマが失われたかを知らせる が送信され、すべての未確認メッセージ が再配信フラグが設定された状態で再配信されます。消費者はこれが起こることを知って することができます。

もしそうなら、引数x-cancel-on-ha-failoverを に設定して消費することができます。その後、を消費すると、フェールオーバー時にがキャンセルされ、消費者にキャンセル通知が送信されます( )。消費者の 責任は、消費を再開するためにbasic.consumeを再発行することです。

だから、何がすべてこの意味は:

  • あなたはキューをミラーリングする必要がありが
  • 消費者が
  • 消費者が自分で再接続する必要があります手動ACKを使用する必要があります

あなたの質問への答えは、いいえ、それがうまくいかにうまくいかれるかは、rabbitmqの問題ではありません。再接続するのはクライアントの責任です。

+0

非常によく答えられた答え。ありがとう。 – sharman

+0

ようこそ。おそらくあなたを助けたり、おそらくあなたの問題を解決しましたか?行方不明や不明な点はどちらにも言えませんか? – cantSleepNow

+0

あなたの答えはウサギの働きを説明しました。しかし、ログ残し問題は依然として残っています。 – sharman

関連する問題