ZMQ在局域网发送大数据块时失败

1 投票
1 回答
586 浏览
提问于 2025-04-16 14:35

基本上,我有一个主系统和三个从系统。我使用请求/响应的方式把内容发送到这三个客户端系统,这样可以很自然地解决数据分割的问题。在把内容发送到三个客户端系统后,我关闭了负责请求/响应的那个连接,然后又创建了一些新的连接,分别和每个从系统配对,以便从这三个系统接收内容。我在本地运行了整个代码,没有遇到任何问题,一切都很顺利,甚至在我尝试从一个客户端系统向主系统发送40MB的数据时也没有问题。

问题出现在我尝试在实验室的局域网(LAN)上实现这个功能时。

  1. 请求/响应的阶段运行得很顺利,所有客户端系统都能顺利获取到数据集进行处理。

  2. 但是,当我尝试处理大数据集(比如40MB,我觉得这并不算大,因为我把内容加载到字典中,字典对象的大小达到了24MB)时,和客户端的单独连接就有点问题了,处理起来有点卡顿,出于某种原因没有正常处理。

我不知道为什么在局域网的表现和在我自己的系统上不一样。

我在局域网使用的系统都是AMD双核64位,配备2GB内存(四台系统都是这样)。

如果你有兴趣运行代码:

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

从系统1: http://codepad.org/LNmi9vu2

从系统2: http://codepad.org/0vmEAJYc (这个从系统处理40MB的文件内容,并最终传递给主系统)

从系统3: http://codepad.org/d565lgiv

1 个回答

2

PAIR套接字不会自动重新连接,所以不建议在局域网(LAN)中使用它们。

撰写回答