2

Camel のドキュメントには、「FTP コンシューマー (同じエンドポイントを持つ) は同時実行をサポートしていません (バッキング FTP クライアントはスレッド セーフではありません)。複数の FTP コンシューマーを使用して、異なるエンドポイントからポーリングできます。同時消費者をサポートします。」

http://camel.apache.org/ftp2.html

問題は、同じ ftp サーバー上に複数のコンシューマー エンドポイントがあり、アカウントが同じでパスが異なるルート構成にあります。

擬似コード:

<from uri="ftp:localhost/input01?username=test&password=test"/>
<from uri="ftp:localhost/input02?username=test&password=test"/>

上記の制限を考慮して、これは 2 つのエンドポイントとしてカウントされますか、それとも 1 つとしてカウントされますか? 言い換えれば、2 つのコンシューマーがスレッドセーフであると期待できますか?

また、次のように同じコンシューマで 2 つのパスを消費することは可能ですか?

<from uri="ftp:localhost/input01,/input4?username=test&password=test"/>
<from uri="ftp:localhost/input02,/input3?username=test&password=test"/>
4

1 に答える 1

1

それぞれが独自の FTP 接続を (おそらく異なる資格情報で) 使用するため、スレッドセーフでありながら複数 (ルートごとに 1 つ) を使用できます。

あなたについて 2 番目の質問ftp:localhost/input01,/input4?...は、受け入れられる URI ではありません。ドキュメントを参照してください。指定できるディレクトリ名は 1 つだけですが、ネストされたフォルダを持つことができます。

ftp://[username@]hostname[:port]/directoryname[?options]

directoryname は、基礎となるディレクトリを表します。ネストされたフォルダーを含めることができます。

FTP 構造を制御できる場合は、フォルダーをポーリングするために、共通の親の下にフォルダーを再グループ化することをお勧めします。

それ以外の場合は、フォルダーごとに 1 つ (01 から 4) の 4 つのコンシューマーを使用し、ファイルを 01-02 から特定のルートにルーティングし、3-4 を別のルートにルーティングします。

于 2013-11-15T09:11:42.443 に答える