0

有:

  • TCP 服务器
  • TCP 客户端。

客户端联系服务器以获取文件。

如果服务器没有文件,服务器会询问其他服务器。

当其中之一时,在服务器(第一个)发送文件,这将在客户端发送。

服务器(第一个)必须逐渐将文件转发给客户端,因为字节从第二个服务器到达(因此无需等待接收整个文件)。任何想法?

4

2 回答 2

2

散列您的文件名并根据该散列对服务器进行分片,因此客户端可以从一开始就知道哪个服务器具有特定文件,而无需询问任何人。

于 2013-06-09T09:23:40.027 回答
0

您可以使用“直接服务器返回”来避免响应数据通过第一台服务器。如何实现它取决于你的通信协议是什么样的,以及你的存储和网络是如何设置的。

这是一个类似的问题,使用http。一些答案假设共享存储,因此哪个后端服务器响应都无关紧要。https://serverfault.com/questions/112667/forwarding-http-request-with-direct-server-return

于 2013-06-09T10:51:37.850 回答