减少数据传输的延迟

时间:2013-06-09 09:03:48

标签: linux sockets

有:

  • TCP服务器
  • 一个TCP客户端。

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

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

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

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

2 个答案:

答案 0 :(得分:2)

散列你的文件名并根据该散列对服务器进行分片,这样客户端就可以从一开始就知道哪个服务器有一个特定的文件,而不会询问任何人。

答案 1 :(得分:0)

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

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