2017-08-15 16 views
1

は、RabbitMQ RPCの種類です。作業キューと応答しますか?RabbitMQ RPCは応答のある「作業待ち行列」の一種ですか?

RPCサーバーが遅すぎる場合、あなただけの別のいずれかを実行してスケールアップすることができます:あなたが読むことができるRPCの説明では 。もう1台のrpc_server.pyを新しいコンソールで実行してみてください。

だから私の心の中でRPCは、労働者のキューで、タスクが実行された場合、すべての労働者が応答しています。または私は間違っていますか?

ワーカーキュー:https://www.rabbitmq.com/tutorials/tutorial-two-spring-amqp.html

enter image description here

RPC:事前にhttps://www.rabbitmq.com/tutorials/tutorial-six-spring-amqp.html

enter image description here

感謝。

答えて

0

AMQPチュートリアルでは、基本的なAMQPの概念を使用して一般的なパターンを達成するためのツールを提供することを目的としています。だから、私たちはチュートリアルの実装だけにコメントしています。あなたのニーズに合っていれば、あなたの側で働く方法を変えることを選ぶかもしれません。

したがって、これらの実装には類似点があり、チュートリアルのあるステップから別のステップへのツールの一部を使用します。たとえば、RabbitMQには本質的に1つのタイプのキューがあり、チュートリアルのステップ1からステップ6まで使用しています。同様に、RPCと作業キューのための提案された実装は両方ともダイレクト交換を使用します。

でも違いがあります。たとえば、作業チュートリアル(チュートリアルで説明)は非排他的です(複数の接続/コンシューマが読んで使用できることを意味します)。RPCチュートリアルではキューを排他的に宣言しています。さらに重要なのは、RPCチュートリアルでは、「返信」機能と相関IDを使用してRPCパターンを実装する方法を説明しています。とにかく、あなたはいつもこれがあなたにとって良いかどうかを選ぶかもしれません。

RabbitMQは "RPC"または "作業キュー"フレームワークではありません。このようなパターンを実装する一連のツールが用意されていますが、それよりも強力です。 RabbitMQを使ってRPCを達成する方法よりも、概念を理解し、それらがどのようにしてパターンを達成するかを理解する必要があります。

これが役に立ちます。

1

2つの章は、異なることを教えるために異なる場合があります。

ワーカーキューは、プリフェッチの概念を教えてくれます。 basicQosを設定できます。

RPCは、メッセージのBasicPropertiesとQueueの排他を表示します。

basicQos/BasicProperties/etcの詳細については、apiまたはspecを参照してください。

また、Work QueueとRPCを組み合わせることもできます。コンシューマrpc_queueに2つ以上のサーバを追加することができます。

+1

"Work QueueとRPCを組み合わせることもできます。複数のサーバーをコンシューマrpc_queueに追加できます。" これは私が知りたいと思うところです。複数のサーバー= "ワーカー"が同じキューをリッスンしていて、ただ1つのサーバーがキューからメッセージを取り出し、作業を処理してクライアントに返信します。 RPCとWorker QueueはRabbitMQが提供するさまざまなアプローチであることを完全に理解しています。だから、複数のサーバーを持つRPCの動作がここで説明したものであれば、それはRPCとWorker Queueの「ミックス」の一種だと言えるでしょうか? – DOUBL3P

関連する問題