1

私は、要件があるSpring xdとgemfire xdに取り組んでいます。xd-adminが実行されているノード(ローカルファイルシステム)の1つからデータを収集します。このファイルを収集し、処理のために送信します。以下は私のストリーム定義です。

ソースファイル /tmp/xd/input --ref true | プロセッサー (メッセージコレクター) | processor((式の計算) | シンク(gemfire xd)

私は 3 ノードの spring xd と gemfire xd クラスターを持っています。最初のノード (xd-admin.xd-container) と 2 & 3 ノードの xd-containers が実行されています。コンテナーは xd-admin に適切に登録されます。単一の redis インスタンスを構成しました。

私の要件は、ファイルからデータを収集し、プロセスのために送信して gemfire xd に保存することです。

messageCollector --> すべてのメッセージを HashMap として収集し、次のプロセッサに送信します 方程式の計算。ここで、すべてのレコードが方程式を通過して計算され、結果が次のシンク (gemfire xd) 挿入に送信されます。

これは、私は単一ノード環境でテストし、うまく機能しています。さて、上記で説明したように、分散環境に移行しました。

分散環境でモジュールを作成するにはどうすればよいですか。すべてのモジュールを使用可能なすべてのノードに移動する必要がありますか?

また

ソースモジュールは、実際のファイルと残りのモジュールが利用可能なすべてのコンテナーに移動する場所にのみ存在します。

ここでは、方程式計算モジュールで、ファイル内のすべてのレコードのシーケンスを維持しています。gemgire xd(sink) では、同じシーケンスをそのまま維持する必要があります。

現在は単一ノード環境にあるため、単一ノードで処理される全体としてうまく機能しています。

ここで、上記で説明したように、コンテナーがない分散環境に移動しました。挿入までシーケンスを保持する方法。

分散環境でのモジュールの展開を手伝ってください。

ありがとう、 -スヨーダ

4

1 に答える 1

2

配置マニフェストで使用criteriaして、ファイル ソースを特定のノードに転送します。プロセッサーを複数のノードにデプロイするために使用します。count

ただし、これを行うと順序を維持できません。2 番目のプロセッサのインスタンスが 1 つしかない場合、すべてがそれを通過しますが、シーケンスはファイルの元のシーケンスではない可能性があります。

于 2014-07-28T19:45:58.560 に答える