0

私はRabbitmqを初めて使用し、中央ルーターがクライアントからメッセージを受信し、それをターゲットにルーティングし、応答を要求元クライアントに送信できるシステムに取り組んでいます。

基本的に 3 つのモジュールがあり、それぞれが別のモジュールを対象とするメッセージを送信できます。メッセージには次の流れが必要です。

  • module1 はルーターにメッセージを送信します
  • ルーターはメッセージをモジュール 3 (= モジュール 1 のターゲット) に送信します。
  • module3 はメッセージを処理し、ルーターに応答を送信します
  • ルーターは応答を module1 (リクエスター) に転送します

RabbitMQ はこれに適した候補のようですが、それを実装する最良の方法が何であるかはわかりません。REQ/REP アプローチの方が適切でしょうか?

4

1 に答える 1

1

RPCの古典的なケースのように聞こえます

このリンクは、RabbitMQ での RPC の仕組みを (python で) 詳細に説明しています。RPC クライアントRPC サーバー

しかし、基本的に、上記の例から、何が起こるかは次のとおりです。

(RPC クライアントから)

Module1 は RabbitMQ ブローカー (14/17) に接続し、排他キュー (24) を宣言します。次に、メッセージの基本プロパティを作成し、reply_to (26) (キュー名) を設定してから、メッセージを交換 (28)

(RPC サーバーから)

モジュール 3 は、Module1 からのメッセージが最終的に入るキューにサブスクライブし、メッセージが受信されると (31) そのキューから消費を開始し (40)、メッセージを処理してから、ルーティング キーを reply_to に設定して結果を再発行します。 (38) 次に、コンシューマ (Module1) はそれからコンシュームする必要があります (rpc コンシューマの行 42 を参照)

于 2012-08-03T22:11:16.293 に答える