遅い消費者の場合にはブロックされます方法:プロデューサーは、私はActiveMQのドキュメント<a href="http://activemq.apache.org/consumer-dispatch-async.html" rel="nofollow noreferrer">here</a>からの引用、以下の読み取り
同期メッセージの配信を使用しての欠点は プロデューサーが遅いがある場合にブロックする可能性が高いということです消費者は彼に がメッセージを送信しています。
しかし、私は、JMSクライアント(プロデューサ)がActiveMQインスタンスのキューにメッセージを送信することを理解しているため、一般的にプロデューサがブロックされる可能性はありませんブローカー)それはそれです、今、プロデューサーは無料ですか、言い換えれば、メッセージを送信したプロデューサースレッドは自由に完了/死ぬことができます。次に、他のJMSクライアント(コンシューマ)がそのキューをリッスンします。メッセージがブローカに到着するとすぐに、ブローカはそのメッセージをリスニングコンシューマに送信します。
ここで、プロデューサーは消費者に依存しているこのすべてにおいて、
一般的には、プロデューサが消費者の低速によってブロックされる唯一の方法です。そうでなければ、プロデューサスレッドがメッセージが消費されるのを待たずに質問した正しいですよね? – hagrawal
プロデューサは、メッセージが同期的に送信され、ブローカに格納するスペースがないために応答を保持するときだけ待機します。私がすでに言ったように、 –
メッセージが同期して送信されても、プロデューサは "ブローカ"からの応答/確認応答を待つでしょう。メッセージは消費者によって消費されるのを待たずにいますよね? – hagrawal