ZeroMQ / zmq发布者订阅者向后兼容性:2.2 SUB-s / 4.1.4 PUB-s

时间:2018-05-17 18:34:06

标签: c++ zeromq

我想在某些特定计算机上将zmq从2.2升级到4.1.4,而不会中断到仍在运行2.2.0的其他计算机的消息流。

到目前为止我注意到的一个问题是,v2订阅者没有收到来自v4发布者的任何消息(反过来说工作正常)。

以下是关于原因的理论:
在版本3及更高版本中,消息过滤发生在发布者,而版本2过滤发生在订阅者处(此更改记录在此处:https://raw.githubusercontent.com/zeromq/zeromq3-x/master/NEWS在v 3.0.0下)。

v3中PUB/SUB跟踪的zguide示例显示,当订阅者添加订阅时,PUB会收到添加订阅的通知,这是有道理的,因为过滤发生在发布者处。使用v2订阅者(自行进行过滤),这些消息不会发送给发布者,因此我的v4发布者不知道v2 SUB已连接,{{1无声地丢弃数据包。

从指南:(http://zguide.zeromq.org/page:all#toc115

"订阅者线程订阅" A"和" B",接收五条消息,然后销毁其套接字。当您运行该示例时,侦听器将打印两条订阅消息,五条数据消息,两条取消订阅消息,然后静默:"

PUB

"这清楚地显示了发布者套接字在没有订阅者时停止发送数据的方式。发布者线程仍在发送消息。套接字只是默默地放下它们"

是否有解决方法?

ZMQ表示"所有4.x版本的目标是与稳定版本的兼容性回到2.2.0"但这很容易引用API的兼容性,而不是消息传递。

0 个答案:

没有答案