サーバーのクラスター (互いにリモートである可能性があります) があり、これらはすべてTomcat
Apache を使用して HTTP 経由で実行および通信しますHttpClient
。これらのサーバーの多くはデータ ストアであり、サーバーの 1 つは、クライアントとストアの間の仲介者として機能する前面 Web サーバーです。ユーザーはファイルを Web サーバーにアップロードできる必要があり、Web サーバーはそのファイルを指定された数のストアに渡します。
質問: クライアントからのアップロードのファイル部分を取得し、ストアInputStream
への複数のPOST
要求に同時に書き込むことは可能ですか? 単純にローカル ファイルに書き込む場合、明らかな解決策は、のチャンクを配列バッファーに読み取りInputStream
、byte
バッファーから各出力に順番に書き込むことですが、HttpClient を納得させる方法について途方に暮れています。このようなストリームを「共有」します。
はい、単純に全体を Web サーバー上のオブジェクトに読み込んで各InputStream
ストアに順番に書き出すこともできますが、非常に大きなファイルを受け入れる可能性があるため、データをディスクに書き込んで読み戻す必要があります。ディスク操作の数がすぐに法外なものになる可能性があります。これは避けたい実装です。