特定のルーティングキーを持つ最大1つのメッセージがいつでも保留になるようにRabbitMQ交換またはキューを構成することは可能ですか?新しいメッセージが到着すると、古いメッセージは削除され、新しいメッセージがキューに入れられます。
そのようなオプションが利用できない場合、アプリケーションレベルでこれを実装するための最良の方法は何でしょうか?つまり、アプリケーションがメッセージを受信したときに、保留中のメッセージが他にあるかどうかをどのように確認できますか?
LastValueCacheをインストールして有効にする必要があります。交換は、直接交換タイプから継承するタイプ「x-lvc」になります。
MQに接続するたびに、キューを作成してこの交換にバインドします。最新のメッセージをキューに配信します。最新のメッセージのみを確実に受け取るのに最適です。この交換に送信された他のすべてのメッセージは、キューが接続されていない限り破棄されます。したがって、接続すると、引き続き更新を受信します。
インストール手順は次のとおりです: https ://github.com/simonmacmullen/rabbitmq-lvc-plugin
同様の質問があります: RabbitMQメッセージング-コンシューマーの初期化