こんにちは、私はウサギmqの簡単な解決策を探しています。以下はウサギの設定です。メッセージを送信するためのRabbit MQブロッキングコールで、メッセージの制限値を超過するか、メッセージサイズ制限を超える正しい返信コードが返されることを確認してください。
-
はウサギサーバ
- は、耐久性のあるオプション付きタイプトピックのやり取り(myexchange)を作成開始
- 。
- 耐久オプションとx-max-length-bytesを4に設定し、x-max-lengthを2に設定してキュー(myqueue)を作成します。
- myexchangeをmyqueueにバインドします。
- aqmpチャネル(channel.basicPublish(myexchange、myrouting、真、 ヌル、 "テスト" .getBytes( "UTF-8"))を用いbasic_publishを使用してメッセージをパブリッシュ、
- 使用パブリッシャchannel.confirmSelectような設定を確認();とchannel.waitForConfirmsOrDie();。
コード
channel = connectionFactory.getChannel();
channel.queueDeclarePassive("myqueue");
channel.confirmSelect();
channel.basicPublish("myexchange", "myrouting", true,
null, "test".getBytes("UTF-8"));
channel.waitForConfirmsOrDie();
の下スニペット今ウサギMQがメッセージの数のエラーで返信されていませんが、私が送信することができた/サイズ超過超え1kbのサイズで1000メッセージ/消費者はこれらのメッセージをすべて消費する。どうすればエラーコードを取得できますか? これに関する助けてください?
ありがとうございます。このシナリオでは、削除されたメッセージの数を取得する最善の方法は何ですか。消費者のacks/nacksメカニズムを使用して、消費されたメッセージの数を取得するように修正しました。 – vrit
ありがとう、ルーク、このシナリオでドロップされたメッセージの数を取得する最良の方法は何ですか(私がデッドレターキューを使用していない場合)。消費者承認メカニズムを使用して、メッセージが正常にキューに配信されたことを確認します。 (私はキューにメッセージを送信するためにブロック呼び出しを行っていると仮定します)。 – vrit
はい、メッセージが公開されたことを確認するには、[publisher confirms](https://www.rabbitmq.com/confirms.html)を使用する必要があります。デッドレター交換を使用するのは、ドロップされたメッセージの数を知る唯一の方法です。私の元の回答とこのフォローアップが十分であれば、私の回答を受け入れられた回答としてマークしてください。 –