2016-07-23 14 views
0

こんにちは、私は本当にRabbitMQを新しくしています。私は、RPCパターンを実装したいが、複数のクライアントと1つのサーバで実装したい。誰でもこれを実装する反応的な方法をお勧めしますか?私はちょっと私が1つのクライアントを実装しているコードを懸念しているし、1つのサーバーはブロッキングの問題を導入するだろう、理想的には私はクライアントがかなり迅速に応答を取得したい。いかなる勧告やアプローチも歓迎されます。乾杯。RabbitMQ RPC複数の送信者1つの受信者

+0

どのようなビジネス上の問題を解決する必要があるのですか? –

答えて

0

まずまっすぐ用語を取得する:RMQコンテキストで

  • を、RMQは、そのクライアントの生産者と消費者のあるブローカー(サーバー)です。
  • RPCコンテキスト(例:the tutorial)には、RPCクライアントとRPCサーバーがあります。したがって、これをRMQコンテキストにマップすると、RPCクライアントはRMQプロデューサとRMQコンシューマの両方(実際には要求を送信して応答を受け取るため)であり、RPCサーバはRMQコンシューマとRMQプロデューサの両方です

これでチュートリアル(前述のリンク)で行ったのと同じ方法で実装すれば、問題はありません。もっと多くのリクエストを並行して処理できるように、より多くのRPCサーバーを起動するだけです。

+0

アレクシーの質問に答えることができます。ビジネス上の問題は、かなり古い会計ソフトウェアと通信する必要のあるウェブサイトがあることです.APIのAPIは、ネットワークを介して長時間接続しているデスクトップアプリ向けです。ベンダーはこのシナリオでスレッドの問題をサポートしておらず、この問題を暗示しています。したがって、私たちの次のアプローチは、WebアプリケーションにRabbitMQにメッセージを送信させ、キューに待機するアカウンティング・アプリケーションに永続的に接続されたコンソール・アプリを持って、プロセスが長すぎないことをWebアプリケーション・ユーザーに通知できるようにすることですトランザクションが処理された/キューに入れられた – user1102550

+0

チュートリアルからcantSleep(私は別のものを使用しました)に戻ります。パフォーマンス/賢明なアーキテクチャアプローチから。 RPCクライアントは、呼び出しごとにWebアプリケーション用の一時的なキューを作成し、それを元に戻すことは可能ですか?私は現時点で私のコンピュータではないので、私はチュートリアルを実行することはできません。しかしそれを見ると、1つのキューが作成されます。 1つのキューでボトルネックが発生する可能性があることにちょっと気をつけてください。私はトランザクションの持続時間の最後に一時的なキューを作成するいくつかの例を見てきました。それはもっとスケーラブルな方向ですか? – user1102550

関連する問題