rabbitmqのプリフェッチカウントとnockの違いは何ですか?次の文の違いは何ですかrabbitmqのプリフェッチカウントとno ackの違いは何ですか
また : - 私は、プリフェッチ・カウントを設定している場合
は、10、10個の、消費者のスレッドが作成されてい言うの? または -
私が10人のcosumersを登録すると、10個のスレッドが作成されますか?より効率的である上記の
rabbitmqのプリフェッチカウントとnockの違いは何ですか?次の文の違いは何ですかrabbitmqのプリフェッチカウントとno ackの違いは何ですか
また : - 私は、プリフェッチ・カウントを設定している場合
は、10、10個の、消費者のスレッドが作成されてい言うの? または -
私が10人のcosumersを登録すると、10個のスレッドが作成されますか?より効率的である上記の
プリフェッチカウント:消費者は、キューから読み取られ、一度に一つのメッセージを取り上げるよりも、内部ではなく、保持すべきであるどのように多くのメッセージ。
No-Ack:消費者がメッセージを消費したことを確認しないでください。
の両方が、質問の2番目の部分に対処するために、あなたのセットアップ
微調整に使用されているもの: あなたはプリフェッチは10まで数え設定した場合は、10件の消費者は作成されませんが、あなたの単一消費者の意志一度に10メッセージを取得します。
10人のコンシューマを作成すると、10個のスレッド(またはプロセス)が作成される可能性が高くなります。すべての設定方法によって異なります。おそらくあなたはスレッドプールを使いたいと思うでしょう。
これはspring-amqpで具体的に答えてください。
prefetchCount=10
は、ブローカが各コンシューマに対して最大10の未解決メッセージを許可することを意味します。スレッドの数には影響しません。
concurrentConsumers
を使用すると、複数のコンシューマを作成できます。コンシューマは、それぞれ1つのスレッドを持ちます。
auto ackは、ブローカーにacksが必要ない(メッセージを失う可能性がある)ことを意味します。リスナーが追いついていない場合、Spring AMQPは配信(プリフェッチカウント)もブロックします。