几天前我开始使用zeromq . 我的目标是设计一个包含多个代理(经纪人网络)的发布订阅系统 . 我已经阅读了zeromq指南的相关部分,并为简单的pub子系统编写了代码 . 如果有人可以帮我解决以下问题:
从我能想到的,经纪人(xpub-xsub套接字)也将有推/拉套接字来传递pub-sub消息 . 那是对的吗?任何有关 how the brokers should communicate 的帮助将不胜感激 . 经纪人之间是否应该有中介?
任何设计指南都会非常有用 . 谢谢 .
指南说我们应该在需要动态发现时使用xpub和xsub套接字 . 有人可以解释一下套接字之间的区别:xpub和pub,以及xsub和sub .
与 PUB 相比, XPUB 只意味着许多发布商,这意味着单个发布商 .
PUB
XPUB
与 SUB 相比, XSUB 表示许多订户,这意味着单个订户 .
SUB
XSUB
如果您希望将许多订阅者连接到许多发布者,同时仍然享受动态发现的好处,则需要在中间使用代理;类似下面的插图 . PUB套接字向代理发送消息; XSUB将消息转发给XPUB,XPUB然后将这些消息分发给所有收听的SUB .
创建这样一个代理的代码很简单(下面),PUB和SUB结尾很简单,请查看示例code .
Socket xsub = ctx.createSocket(ZMQ.XSUB); input.bind( "tcp://*:5500"); Socket xpub = ctx.createSocket(ZMQ.XPUB); xpub.bind( "tcp://*:5600"); ZMQ.proxy( xsub, xpub, null);
从我能想到的,经纪人也将有推/拉套接字来传递pub-sub消息 . 那是对的吗?任何有关经纪人应如何沟通的帮助都将受到赞赏 . 经纪人之间是否应该有中介?
查看Inter-Broker Routing示例的指南
1 回答
与
PUB
相比,XPUB
只意味着许多发布商,这意味着单个发布商 .与
SUB
相比,XSUB
表示许多订户,这意味着单个订户 .如果您希望将许多订阅者连接到许多发布者,同时仍然享受动态发现的好处,则需要在中间使用代理;类似下面的插图 . PUB套接字向代理发送消息; XSUB将消息转发给XPUB,XPUB然后将这些消息分发给所有收听的SUB .
创建这样一个代理的代码很简单(下面),PUB和SUB结尾很简单,请查看示例code .
查看Inter-Broker Routing示例的指南