0

10 個のメッセージがActivemqあり、2 つのコンシューマーを開始しましたが、最初のコンシューマーのみがメッセージを消費して処理しています。メッセージを消費しない 2 番目のコンシューマー。

最初の消費者の処理時間中にもう 1 つのメッセージを送信するQueueと、2 番目の消費者はその特定のメッセージ (最初の消費者の処理時間中に 1 つのメッセージを送信したもの) のみを消費して処理します。

最後に私が理解していることは、保留中のすべてのメッセージは、残りの消費者ではなく最初の消費者によって処理されていることです。

保留中のメッセージの処理にすべてのコンシューマーを関与させたいと考えています。

ありがとう。

4

1 に答える 1

1

あなたが見ているのは、プリフェッチの制限により、1 つのコンシューマーが前もって大量のメッセージを占有し、それによって他のコンシューマーを飢えさせていると思います。ブローカーが最初に接続されたコンシューマーにメッセージを熱心にディスパッチせず、他のコンシューマーがオンラインになって負荷を分散できるように 、コンシューマーのプリフェッチ制限を下げる必要があります。

あなたの場合、プリフェッチ制限を 1 にすると、すべてのコンシューマーが飛び込んで作業を行うことができます。

于 2013-09-13T18:41:38.420 に答える