1

私は ActiveMQ を使用していますが、この特定のケースを解決する方法を知りたいです。

コンシューマーが停止すると、プロデューサーはメッセージをキューに送信します。メッセージは、消費者がそれを消費するために実行されるまで、キューに残ります。

プロデューサーをシャットダウンすると、メッセージはまだキューに残ります。ここでコンシューマーを実行すると、そのメッセージを消費しようとしますが、ダウンしてからプロデューサーに返信できなくなります。

プロデューサーが不在の場合、メッセージを消去することでこの問題を解決したいと思います。ActiveMQ ブローカは、停止後にキューを消去します。それぞれのプロデューサーのメッセージについても同じことをしたいと思います。

ありがとう。

4

2 に答える 2

1

いくつかの方法で解決できます。1 つは、メッセージが消えるように TTL を設定することです。もう 1 つは、JMX を介して接続し、キューを消去するか、セレクター ステートメントまたはメッセージの特定の MessageId 値を使用して特定のメッセージを削除することです。

いくつかのヒントについては、この記事を参照してください。

于 2013-08-07T14:20:19.400 に答える