【发布时间】:2013-11-28 00:15:25
【问题描述】:
使用ZMQ传输数据时,传输端口快,数据量大,但接收端口处理慢,数据在两个进程之间堆积。有谁知道如何解决这个问题?谢谢。
【问题讨论】:
-
您想在接收器非常慢的两个对等方之间传输大数据?您使用什么语言绑定?
-
请提供更多关于您正在做什么以及您如何努力实现它的详细信息。
标签: zeromq
使用ZMQ传输数据时,传输端口快,数据量大,但接收端口处理慢,数据在两个进程之间堆积。有谁知道如何解决这个问题?谢谢。
【问题讨论】:
标签: zeromq
不是一次发送所有数据,而是分块发送。像这样的……
客户端向服务器发送读取请求以获取数据块:
客户端 -> 服务器:给我 0 到 1023 字节的文件“xyz”
服务器 -> 客户端:第一个块
客户端 -> 服务器:给我 1024 到 2047 字节的文件“xyz”
服务器 -> 客户端:第二块
...等等。
对于每个响应,客户端将块持久化到磁盘。
这种方法允许客户端限制从服务器传输数据的速率。此外,在网络故障的情况下,由于每个块都是持久化的,因此无需从头读取文件;客户端可以从最后一个响应失败之前的点开始请求更多块。
您没有提到任何语言绑定,但这个解决方案几乎可以用任何语言实现。
【讨论】: