2011-04-05 16 views
1

たとえば、複数のコンシューマが待ち受けているキューがあるとします。私はキューにリクエストを入れ、消費者の一人がそれを処理して返信を送ってくれます。AMQPで同じ相関IDを複数回使用できますか?

さて、私はせっかちだとしばらくしても返事が来なければ、別のリクエストを発します。

この場合、同じ相関IDを再利用できますか?返信が2回以上来る場合は、私は余分な返信を無視するだけです。

私にとっては妥当な音ですが、とにかくAMQPを台無しにしないことをもう一度確認したいのです。

P.S.私はrabbitmq-java-client 2.2でRabbitMQ 2.4を使用しています。

答えて

1

私はうまくいくと思います。私はRpcClientクラスをあまり使っていませんが、関連する返信メッセージが適切な返信キューに表示されるのを待っているだけです。したがって、同じIDを持つ別のリクエストを "クライアント"アプリ内の別のスレッドから起動させると(関連する返信が最後に表示される)、RpcClientコールが返されます。

ブローカは、相関IDを不透明なメッセージプロパティとして渡すだけでよいので、気にしません。

成功するまで複数回再発行することができる場合は、リクエストがidempotentであることに注意してください。

関連する問題