2

サーバー A と B は 2 つの異なる物理的な場所にあり、それぞれの場所に RabbitMQ のインスタンスがあります。場所を接続するネットワークはひどいもので、まったく信頼できません。アプリケーションの特定の要件は、サーバー A のキューに配置されたメッセージがサーバー B にミラーリングされ、その逆も同様であるということです。

信頼性の低いネットワークは、メッセージ配信の信頼性という点で大混乱を引き起こしているようです.shovelプラグインは私が現在使用しているものですが、奇妙な機会にメッセージをドロップしているようです. メッセージが送信先キューに適切に配信される前に送信元キューから ack されているとしか考えられませんが、ログにはこれが起こっていることを示唆するものは何もありません

このような信頼できないネットワーク上でこのキューのミラーリングを実現するためのより良い方法はありますか? キューを完全に削除し、代わりにより同期的なアプローチ (http API など) に移行することを検討しましたが、不安定なネットワーク接続を介してミラー化されたキューを実現するためのより良い方法があるかどうか、またはその方法を理解せずにそれを行うことは避けたいと思います問題の内容をより正確に判断できます。

4

1 に答える 1

1

ショベルは故障を念頭に置いて設計されています。ack_modeショベル構成がに設定されていることを確認してくださいon_confirm。このようにして、メッセージは、宛先ブローカーに配信されたことが完全に確認されるまで、ソースブローカーから消えることはありません。参考文献を参照してください

于 2013-03-06T21:07:58.350 に答える