5

FTPサーバーに接続していくつかのファイルを読み取り、読み取ったデータに対していくつかの操作を行ってサービス要求を処理するRest Serviceを作成しています。私は Apache commons を使用していFTPClientます。

一時的な解決策として、FTPClientオブジェクトを作成してから接続し、資格情報を使用してログインします - メソッド内 (クライアントはこのメソッドに対してローカルです -FTPClientスレッドセーフではないため、これを実行します) で、データ アクセス レイヤーでメソッドから出る前に(つまり、ファイルを読み取った後)切断します。問題は、FTPClientログインに 3 ~ 7 秒かかり、非常に長いことです。そこでFTPClientPool、データアクセス方式に既成のクライアントを提供できる を実装しようと考えています。

そのような ClientPools はすでに存在しますか?

はいの場合、何を選択する必要がありますか?

いいえの場合、実装の難しさは、一度作成して接続すると、 apache FTPClient はどのくらい存続しますか? 無限の時間?? (私が言いたいのは、FTPClient のデフォルトのキープアライブ時間です。クライアントが切断されるまでのアイドル時間です。Java ドキュメントにはさまざまな種類の時間が表示されます。 ?? (別のスレッドで定期的に NOOPS を送信している可能性があります??) どのように進めればよいかについてのヘルプは本当に役に立ちます。

ありがとうございます。それでは、お元気で

4

2 に答える 2

2

クライアントのアイドル タイムアウトは、通常、サーバー側で決定されます。

以下は、より明白でないクライアント パラメータの一部です。

  • soTimeout - クライアントがメッセージの待機をブロックする時間を決定します。通常、ソケットを頻繁にポーリングし、これにより、ポーリング中に待機する時間が決まります。
  • soLinger - close() が呼び出された後、接続を維持する時間を決定します。

FTP を使用した私の経験から、接続が閉じられた場合、通常は再接続するだけです。通常、他のアプリケーションとは異なり、中断のない接続を常に維持することは重要ではありません。

FTP を何に使用していますか。通常、それほどタイム クリティカルなサービスではありません ...

于 2013-02-28T22:29:08.503 に答える