有:
- TCP 服务器
- TCP 客户端。
客户端联系服务器以获取文件。
如果服务器没有文件,服务器会询问其他服务器。
当其中之一时,在服务器(第一个)发送文件,这将在客户端发送。
服务器(第一个)必须逐渐将文件转发给客户端,因为字节从第二个服务器到达(因此无需等待接收整个文件)。任何想法?
散列您的文件名并根据该散列对服务器进行分片,因此客户端可以从一开始就知道哪个服务器具有特定文件,而无需询问任何人。
您可以使用“直接服务器返回”来避免响应数据通过第一台服务器。如何实现它取决于你的通信协议是什么样的,以及你的存储和网络是如何设置的。
这是一个类似的问题,使用http。一些答案假设共享存储,因此哪个后端服务器响应都无关紧要。https://serverfault.com/questions/112667/forwarding-http-request-with-direct-server-return