zmq之pub/sub会出现丢包的问题的解决方案
1 应用场景
当前要做的一个内容是通过好几个pub 客户端向一个 sub 服务器publish数据信息,sub服务器用于将所得到的信息解析存储到数据库,但是出现了中间丢掉一些数据包的问题,如下所示,我总记发送类了4w的数据 丢了大概8个包.
2 推测可能的原因
The downside is that we actually need all of these if we want to do reliable multicast. The ZeroMQ pub-sub pattern will lose messages arbitrarily when a subscriber is connecting, when a network failure occurs, or just if the subscriber or network can't keep up with the publisher.
(1)slower subscriber : 我设定的高水位是非常 非常的高
(2)我也没有出现 网络的faiure
(3)在建立链接到publishers的时候,连接握手成功之前就已经发布数据的情况,为了避免这个问题,我们采用了req-rep的同步的方案
(4)目前唯一的可能性就是network can't keep up with the publisher.
(思考,我的测试都是采用本机地址的tcp//127.0.0.1:6001, 有可能既要发送,又要接收,出现的网卡不能忙过来的情况.?后面进行验证)
3 中间的验证过程
(1) publishers----
9个进程同时运行,向sub中发布数据
(2) subscriber 订阅所有的数据.
单个进程运行,收到数据然后进行记录
2020/04/27
--------------------------------------时间较晚,先记录到这-------------------