【问题标题】:ZMQ failing when sending larger chunks of data over LAN通过 LAN 发送更大的数据块时 ZMQ 失败
【发布时间】:2011-03-29 16:46:26
【问题描述】:

基本上我有一个主系统和 3 个从系统。我使用请求/响应阶段将内容发送到我的 3 个客户端系统,因为它从本质上解决了我的数据拆分问题。将内容发送到我的 3 个客户端系统后,我关闭了负责 REQ/REP 拓扑的套接字,并创建了另一组与各个从属系统配对的套接字,以便从所有 3 个系统接收内容。我在 localhost 中运行了整个代码,我没有遇到任何问题,一切都很顺利,即使我尝试从一个客户端系统向主系统发送 40MB 数据集。

问题是当我尝试在我的实验室中通过 LAN 实现它时

  1. REQ/REP 阶段运行平稳,因此基本上所有客户端系统都会获取数据集以进行处理。

  2. 当我尝试处理大型数据集(例如 40MB ,我不认为更大,因为我将内容加载到字典中并且字典对象的大小达到 24MB )时,与客户端的单个 PAIR 有点失败有点窒息,由于某种原因没有处理。

我不知道为什么它在 LAN 上的行为与在我的系统上的行为不同。

我在 LAN 中使用的系统是 AMD 双核 64 位 2GB RAM(所有 4 个系统)

如果您有兴趣运行代码:

主系统代码:http://codepad.org/5uVCEb42

Salve1:http://codepad.org/LNmi9vu2

Slave2:http://codepad.org/0vmEAJYc(这个从一个文件中取出40MB的内容,最后传给Master系统)

Slave3:http://codepad.org/d565lgiv

【问题讨论】:

    标签: python sockets zeromq


    【解决方案1】:

    PAIR 套接字不会自动重新连接,因此不建议将它们用于 LAN。

    【讨论】:

    • 请求-REP。当您需要发送大量数据请求权限时。 REPly 将告诉您继续,然后您可以请求确认。收件人然后回复说一切顺利。
    • 使第一个 REQ 发送期望的字节数和校验和。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多