2017-02-23 13 views
0

私の状況は以下の通りです。現在、私のアプリケーションでは、市販のライブラリを使用して入力を取得し、独自の方法でシリアル化し、TCP経由でサーバーに送信します。私は、TCPトラフィックを調べることから見ると、特定の入力データを「呼び出しキー」と呼んでいますが、「解読されていません」(つまり、サーバーに送信されたバイトシーケンスを取得して、 ")。SpringインテグレーションでTCPトラフィックを代行するTCP "proxy"

私はこれを次のように変更する必要があります.TCPトラフィックを傍受し、「コールキー」が「キーA」であるかどうかを確認し、サーバーAに入力を送信します。コールキーが「キーB」の場合、サーバBにそれを送る必要があります。

私はこの目的のためにSpring Integrationを使用することを考えていましたが、(私はいくつかのサンプルプロジェクトしか実行していませんでした)

つまり、誤った用語を使用すると申し訳ありませんが、商用ライブラリがその入力(localhost:myport)を送信する入力エンドポイントを設定したいと思います。一部のコンポーネントはペイロードを調べ、「コールキー」が「キーA」か「キーB」かを調べ、それをそれに応じてサーバーAまたはサーバーBにルーティングします。

これは、既存のSpring Integrationコンポーネントで実際に実現可能か(多かれ少なかれ容易に達成可能ですか) 「はい」の場合、そのようなソリューションが使用するSpring Integrationコンポーネントを示すことができますか?

答えて

1

tcp-client-server-multiplexは、要求/応答シナリオを非同期的にプロキシするメカニズムを示しています。リクエストに返信を関連付けるには、データに何かが必要です。

これを行うにはアグリゲータを使用します。

READMEで参照されている簡単なtcp-client-serverサンプルでは、​​ゲートウェイが使用され、フレームワークは相関関係を処理できます(アウトバウンド側でCachingClientConnectionFactoryを使用しない限り、

一方向メッセージングについてのみ話している場合は、相関は明らかに必要ではありません(アグリゲータインフラストラクチャは必要ありません)。

いずれの場合でも、フローにルータを追加して、AまたはB発信エンドポイントにルーティングするだけです。

動的にルーティングする新しいDSLベースのTCPの例hereがあります。

+0

ありがとう、非常に有益です。 –

関連する問題