我有一个服务器集群(可能彼此远程),它们都Tomcat
使用 Apache 通过 HTTP 运行和通信HttpClient
。这些服务器中有大量是数据存储,其中一个服务器是前端 Web 服务器,充当客户端和存储之间的中介。用户应该能够将文件上传到网络服务器,并且网络服务器会将该文件传递给给定数量的商店。
所以,问题是:是否可以将客户端上传的文件部分作为一个文件InputStream
并同时写入多个POST
对商店的请求?如果我只是简单地写入本地文件,那么显而易见的解决方案就是将块读取InputStream
到byte
数组缓冲区中,然后依次从缓冲区写入每个输出,但我不知道如何说服 HttpClient像这样“分享”一个流。
是的,我可以简单地将整个数据读InputStream
入网络服务器上的一个对象,然后按顺序将其写入每个存储,但由于我可能会接受非常大的文件,我必须将数据写入磁盘,然后再将其读回每个存储服务器,磁盘操作的数量可能会很快变得令人望而却步。这是我希望避免的实现。