0

私の質問は繰り返されるかもしれません..しかし、私はこれに対する答えを見つけることができませんでした..

私たちのチームは、Spring Integration を評価して Message Broker フローを置き換えています。一方、私は 2 つの異なる Web サービスを使用するための統合を作成しており、単一の構成で各 Web サービスのアウトバウンド ゲートウェイに個別のチャネルを定義しています。エンドポイント間のチャネル定義を減らすためにチェーンを使用することを理解しました。これはうまく機能します。

質問する必要があるのは、さまざまな Web サービスの送信ゲートウェイ間で同じチャネルを共有することは可能ですか? 2 つの Web サービス アウトバウンドがメッセージをリッスンするチャネルを 1 つだけ定義できますか?

はいの場合、SI はチャネル 1 のメッセージ 1 がゲートウェイ 1 用であり、チャネル 1 のメッセージ 2 がゲートウェイ 2 用であることをどのように識別しますか? Web サービスの送信ゲートウェイごとに一意のチャネルを定義する必要がありますか?

-ありがとうMS

4

1 に答える 1

1

はい、通常、各ゲートウェイには独自のチャネルが必要です。

でも...

両方のゲートウェイに同じメッセージを送信する場合は、 <publish-subscribe-channel/>.

同じサービスの複数のインスタンス間で「ラウンド ロビン」(負荷分散) を行いたい場合は、そうです。各ゲートウェイを同じチャネルにサブスクライブするだけで、それらが交互になります。

カスタムの負荷分散戦略を使用して、メッセージを受信するゲートウェイを決定することもできますが、単純にルーターを使用して、各ゲートウェイに独自のチャネルを持たせる方がよいでしょう。

ユースケースによって異なりますが、多くのオプションがあります。

ただし、あらゆる場所でチャネルを排除しようとする罠に陥らないでください。これは、Spring Integration の魅力的な機能の 1 つであり、アプリケーション全体を再配線せずにチャネルのタイプ/機能を変更する機能です。

于 2013-05-22T20:19:54.083 に答える