如题,用的是 zmq 4.0.4 采用的模式是这样的:
client master worker
ZMQ_DEALER <---> (ZMQ_ROUTER, ZMQ_DELEAR) <---> ZMQ_DEALER
client, master,worker 为不同的进程。 client 与 master 为两个不同的机器,采用 tcp 通信。 master 与 worker 在同一台机器上,也采用 tcp 通信,因为 zmq 的 ipc 机制在 windows 上不支持。
因为客户端需要保证不阻塞,所以采用的是 DEALER 类型的 zmq_socket。
现在的问题是这样的: 程序刚开始跑一切正常,但是跑了一段时间(具体时间不确定,可能二三十分钟,可能几个小时),这之间传递的数据是循环的,大概 20 分钟一循环。 之后 master 接收不到数据,看打印是卡在了 zmq_recv(),但是 wireshark 抓包显示是有内容发送过来的,但是具体的内容查看不了,因为 zmq 自己进行了封装。
不知道有没有大佬遇到过类似的问题!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.