-1

同じキューに接続する複数のコンシューマーがいるとします。

私のビジネスロジックは次のとおりです。キューからメッセージを取得し、論理操作を実行し、その操作が成功した場合は、このメッセージを確認します (client-ack として機能します)。

私の質問は、これらのコンシューマー ロジックのいずれかが失敗し、そのメッセージに対して確認応答が返されない場合はどうなるかということです。

メッセージがまだコンシューマーによって処理されている間に、このメッセージが他のコンシューマーに送信されるリスクはありますか?

このメッセージがスレッドによってキューに戻された後、何らかのタイムアウトがありますか?

4

1 に答える 1

3

メッセージは、ラウンドロビン方式でコンシューマーにディスパッチされ、コンシューマーをキューに入れます。コンシューマーに障害が発生し、その処理中のメッセージがブローカーで確認されない場合、ブローカーはコンシューマー接続の障害を検出すると、メッセージをキューに戻し、接続されている別のコンシューマーによる処理に使用できるようにします。

また、メッセージの再配信の最大数を設定して、特定の時点の後にメッセージがデッドレターキューに配置されるようにすることもできます。

于 2013-03-13T17:41:23.043 に答える