【问题标题】:ZMQ data transfer latency from one process to another?ZMQ 从一个进程到另一个进程的数据传输延迟?
【发布时间】:2013-11-28 00:15:25
【问题描述】:

使用ZMQ传输数据时,传输端口快,数据量大,但接收端口处理慢,数据在两个进程之间堆积。有谁知道如何解决这个问题?谢谢。

【问题讨论】:

  • 您想在接收器非常慢的两个对等方之间传输大数据?您使用什么语言绑定?
  • 请提供更多关于您正在做什么以及您如何努力实现它的详细信息。

标签: zeromq


【解决方案1】:

不是一次发送所有数据,而是分块发送。像这样的……

  • 客户端向服务器请求文件“xyz”
  • 服务器仅响应文件大小,例如:10Mb
  • 客户端相应地设置块大小,例如:1024b
  • 客户端向服务器发送读取请求以获取数据块:

    客户端 -> 服务器:给我 0 到 1023 字节的文件“xyz”
    服务器 -> 客户端:第一个块
    客户端 -> 服务器:给我 1024 到 2047 字节的文件“xyz”
    服务器 -> 客户端:第二块
    ...等等。

  • 对于每个响应,客户端将块持久化到磁盘。

这种方法允许客户端限制从服务器传输数据的速率。此外,在网络故障的情况下,由于每个块都是持久化的,因此无需从头读取文件;客户端可以从最后一个响应失败之前的点开始请求更多块。

您没有提到任何语言绑定,但这个解决方案几乎可以用任何语言实现。

【讨论】:

    猜你喜欢
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多