私はtomcat 7上で実行され、異なるノードで構成された一連のWebアプリケーション(エージェントと呼ばれる)として提案されているアプリケーションに取り組んでいます。私は、これらのwebapps(エージェント)が自動的にお互いを発見するように任命されています。考えられるのは、各Webアプリケーション(エージェントX)は、一度上になると、他のすべてのWebアプリケーションに「要求パターン」を伝達するということです。他のWebアプリケーション(エージェントA、B、C)は、この情報(「要求パターン」)を格納し、これを使用してhttp呼び出しを使用して一致する要求をエージェントXにルーティングします。 私はいくつかのオプションを探していますが、各Webアプリケーションには特定のポートでリッスンするコンポーネントがあり、エージェントXはそのポートにあるすべてのノードにマルチキャスト要求を送信します。
私はapacheのラクダがここで役に立つかもしれないと思う。しかし私は確信していない。 このアプローチの技術的な可能性や他の提案がある場合は、それが素晴らしいでしょう。tomcat/servletにマルチキャスト(またはそれに類似した)ソリューションが必要です。
1
A
答えて
0
私の最初の考えは、apache httpdとmod_proxy_loadbalancerを使用して、利用可能なノード上のすべての要求のバランスを取ることができたということでした。任意の種類のエージェントに異なるバランサを定義できます。リクエストはバランサに送信され、バランサはそれを利用可能な任意のノードにルーティングします。
0
これはルーティングの問題よりもメッセージングのほうが多いです。複雑なルーティングや従来のプロトコルに適応する必要がある場合はCamelを追加します。
これは、古典的なパブリッシュおよびサブスクライブの使用例です。あなたはどのメッセージング技術でもそれを行うことができます。 JMSを見てください - ActiveMQはCamelが使用するものですが、AMQPはRabbitMQを非常にうまく使っていますが、どちらも「トピック」パラダイムを使用しています。クイック検索では例としてhttp://jmsexample.zcage.com/index2.htmlが見つかりました。またはジャバー。
ジュリアン
ありがとう@magomi。これはロードバランシングだけではなく、最初に渡された「リクエストパターン」に基づいて異なるリクエストが異なるWebアプリケーション(エージェント)に送信されます。 – phoneynk
RequestPatternsは特定のバランサのapache設定で定義できます。 apacheのアイデアはすばやく考えました。 :) (たぶん、あなたのホームページphoneynk.comをチェックしてください) – magomi
ありがとう@ umomomi。これはロードバランシングだけではなく、最初に渡された「リクエストパターン」に基づいて異なるリクエストが異なるWebアプリケーション(エージェント)に送信されます。エージェントXが「注文」リクエストを処理するとしたら、起動すると、Xエージェントが「注文」リクエストを処理できる他のすべてのWebアプリケーションと通信し、「注文」タイプのリクエストのみが送信されます。また、私はJavaと関連技術を使用してソリューションを探しています。 – phoneynk