2016-09-26 10 views
1

rabbitmqのプリフェッチカウントとnockの違いは何ですか?次の文の違いは何ですかrabbitmqのプリフェッチカウントとno ackの違いは何ですか

また : - 私は、プリフェッチ・カウントを設定している場合

は、10、10個の、消費者のスレッドが作成されてい言うの? または -

私が10人のcosumersを登録すると、10個のスレッドが作成されますか?より効率的である上記の

答えて

2

プリフェッチカウント:消費者は、キューから読み取られ、一度に一つのメッセージを取り上げるよりも、内部ではなく、保持すべきであるどのように多くのメッセージ。

No-Ack:消費者がメッセージを消費したことを確認しないでください。

の両方が、質問の2番目の部分に対処するために、あなたのセットアップ

微調整に使用されているもの: あなたはプリフェッチは10まで数え設定した場合は、10件の消費者は作成されませんが、あなたの単一消費者の意志一度に10メッセージを取得します。

10人のコンシューマを作成すると、10個のスレッド(またはプロセス)が作成される可能性が高くなります。すべての設定方法によって異なります。おそらくあなたはスレッドプールを使いたいと思うでしょう。

2

これはspring-amqpで具体的に答えてください。

prefetchCount=10は、ブローカが各コンシューマに対して最大10の未解決メッセージを許可することを意味します。スレッドの数には影響しません。

concurrentConsumersを使用すると、複数のコンシューマを作成できます。コンシューマは、それぞれ1つのスレッドを持ちます。

auto ackは、ブローカーにacksが必要ない(メッセージを失う可能性がある)ことを意味します。リスナーが追いついていない場合、Spring AMQPは配信(プリフェッチカウント)もブロックします。

関連する問題