私はHAproxy Load Balancerの背後にRabbitmqの3ノードクラスタを持っています。ノードをシャットダウンすると、Rabbitmqは正常にキューを他のノードに切り替えます。しかし、再起動しない限り、Logstashはキューからメッセージを引き出すのを止めています。これはrabbitmqの動作方法に問題がありますか?すなわち、アクティブなすべての消費者を非アクティブにする。ログstashに再試行機能があるかどうかはわかりません。誰でもこの問題にぶつかりますか?rabstmqクラスタを持つLogstash
答えて
何をして複製されている最初のclustering
用ウサギのMQの資料、ページを引用? RabbitMQブローカの操作に必要なすべてのデータ/状態は、すべてのノードにわたって複製されます。この の例外は、デフォルトでは1つのノードに常駐するメッセージキューです。 はすべてのノードから表示され、到達可能です。
ミラーリングされたキューから消費しているクライアントは、彼らが消費してきたこれからのキューがオーバー失敗した ことを知りたいことがあります。 ミラーリングされたキューがフェールオーバーすると、どのメッセージが、どのコンシューマが失われたかを知らせる が送信され、すべての未確認メッセージ が再配信フラグが設定された状態で再配信されます。消費者はこれが起こることを知って することができます。
もしそうなら、引数x-cancel-on-ha-failoverを に設定して消費することができます。その後、を消費すると、フェールオーバー時にがキャンセルされ、消費者にキャンセル通知が送信されます( )。消費者の 責任は、消費を再開するためにbasic.consumeを再発行することです。
だから、何がすべてこの意味は:
- あなたはキューをミラーリングする必要がありが
- 消費者が
- 消費者が自分で再接続する必要があります手動ACKを使用する必要があります
あなたの質問への答えは、いいえ、それがうまくいかにうまくいかれるかは、rabbitmqの問題ではありません。再接続するのはクライアントの責任です。
非常によく答えられた答え。ありがとう。 – sharman
ようこそ。おそらくあなたを助けたり、おそらくあなたの問題を解決しましたか?行方不明や不明な点はどちらにも言えませんか? – cantSleepNow
あなたの答えはウサギの働きを説明しました。しかし、ログ残し問題は依然として残っています。 – sharman
私は同じ問題を抱えていますが、解決策は見つかりましたか? –