1

概念実証のためにデモ システムを実装する必要があります。基本的に、システム記述は 2 つのモジュールに減らすことができます。

  1. モジュール 1 はリクエストを送信します
  2. モジュール 2 はそれらを取得し、処理して応答を返します。

(注:モジュールは同じイントラネットに存在するため、プロトコルを http よりも高速にしたいと考えています。次のオプションを考えました。

  1. メッセージ キュー
  2. ESB
  3. プロトブフ

理想的には、システムは Java ベース (ただしこれに限定されません) で、Linux RH 上で実行され、直線的にスケーリングできる必要があります。ただし、パフォーマンスは POC の範囲外です。ServiceMixActiveMQを見ていました。私の考えは、Java論文モジュールに実装することでした。アーキテクチャはメッセージ駆動型になります。モジュールは、メッセージ キューまたはサービス バスを介して通信します。

「コンシューマー」はリクエストをメッセージとしてメッセージ キューに送信し、「プロデューサー」は特定のサブスクリプション トピックによってリクエストを取得し、リクエストを処理して、同じキューにレスポンスをポストします。「応答」トピックに登録されている「消費者」は、キューから結果を取得します。終わり。

私の質問は次のとおりです。

  1. 上記の機能を実装するために考慮すべき他の良いオプション (プロトコル、アーキテクチャ、既存のライブラリ) は何ですか?
  2. 上記を達成するためにServiceMixESB User Guideを見ようとしましたが、上記のようなものを実行するために、JBI、NMR、Karaf、Camel など、よく知らないことをたくさん学ばなければならないようです。する時間がありません。それで、私は疑問に思います: ESB/Message Queue 'Hello World' アプリケーションのクイック スタート ガイドまたは Java サンプル コードはありますか?
4

1 に答える 1

1

メッセージが大きくて大量でない限り、XML メッセージを使用した ActiveMQ で十分です。

実際のところ、ActiveMQ を介した Apache Qpid (免責事項: これも少し前に使用) などの amqp 実装を使用する可能性があります。しかし、これはより個人的な理由です。

protobuf の欠点は、それらについての知識が必要なことです。Web のいたるところにこんにちは世界がありますが、「実際の問題」に直面しようとすると、簡単にはなりません。手動で行う場合を除き、ファイルをビルドしてコンパイルするには Maven プラグインも必要です。

ActiveMQ は単なる JMS プロバイダーであり、次の例を既にご覧になっていると思います。

ハローワールド ActiveMQ

実装側では、module1 がリクエストを送信するときに、レスポンスが同じモジュールによって読み取られることを確認する必要があります。一時的なキューは私が提案するものです。リクエストを何らかのキューに送信します(たとえば、応答が来ると予想される一時的なキュー名も); module2 はメッセージを処理し、応答を一時キューに送信します。応答は、メッセージ リスナーを使用して module1 によって読み取られます。

ここで、この一時キューを非常に迅速に削除して、山積みにならないようにする必要があります。また、ActiveMQ がキューに一意の名前を付けていることを確認する必要があります。

単純なパラメーター auto-delete=true を持つQPIDでは、アクティブなリスナーが存在しない場合、キューが削除されます。ActiveMQ でそれがどのように処理されるかはわかりませんが、方法があるはずです。

ちょうど私の 0.02$

于 2013-04-17T07:47:25.203 に答える