2017-10-05 5 views
0

私はクライアントとRabbitMQサーバー間でPush API通信がどのように機能するかを深く理解しようとしています。AMQP、RabbitMQプッシュAPIの仕組みは?

クライアントは、ブローカ(RabbitMQ)へのTCP接続を開いて、クライアントの決定を閉じるまでこの接続を有効にします。しかし、この接続中にクライアントはすぐにメッセージを受け取ることができます。

私の質問は、クライアントがブローカを監視してメッセージを尋ねるか、ブローカがクライアントが予約したキューにメッセージを転送したときにその要請を受け取り、データをクライアント?

最初のケース:クライアントがメッセージ

のための最後のケースをブローカーを監視します。クライアントは、ブローカーが単なるデータ

か一方を押して、ブローカーを監視する必要はありませんか?

+0

AMPQの仕組みを正確に把握したい場合は、まず[仕様を読む](http://docs.oasis-open.org/amqp/core/v1.0/amqp- core-complete-v1.0.pdf)を使用してください。 – fvu

答えて

1

はメッセージ

  1. クライアントは、チャネル上の消費者のコールバック(basicConsume)を登録を受けるために2つのオプションがあります。ブローカはメッセージを消費者に「プッシュ」します。

  2. クライアントはブローカーにbasicGetを送信し、1つのメッセージ(存在する場合)を受信します。

最初の使用例が最も一般的です。

質問にとタグ付けしたので、あなたはSpringで面白いと思います。最初のケースでは、Spring AMQPにはリスナーコンテナ(および@RabbitListener注釈)があります。第2の場合には、RabbitTemplateの受信動作のうちの1つを使用することができる。

基本的な理解を深めるために、tutorialsをご覧ください。純粋なJavaとSpring AMQPを含むいくつかの言語をカバーしています。

また、Spring AMQP Reference Manualを見ることもできます。