首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法来逆转zmq /sub上的绑定?

是否有一种方法来逆转zmq /sub上的绑定?
EN

Stack Overflow用户
提问于 2014-08-05 17:12:14
回答 2查看 976关注 0票数 5

我在一个盒子上有服务器代码,需要监听来自另一个盒子的状态信息,里面有大约10片嵌入linux的芯片。这10个芯片都有自己的ip地址,每个芯片都会向服务器发送基本的健康状态,服务器可以(可能)对其做一些事情。

我希望服务器只是被动地倾听,而不必发送回复。因此,这看起来像是zmq的pub/sub的工作。其中,10个芯片中的每一个都有自己的发布,服务器将订阅每一个。

但是,服务器需要知道每个芯片绑定其发布的众所周知的地址。但是,在现场,这些芯片可以用不同的ip地址交换或替换。

相反,让芯片知道服务器代码的ip地址更安全。

我想要一个酒吧/分店,那里的收信人是众所周知的地址。或者,一种请求/响应模式,其中客户端(芯片)向服务器(请求)发送消息,但服务器和芯片都不需要发送/接收响应。

现在,在单独的机器上有两台服务器。因此,如果可能的话,我希望为一台服务器和多台服务器提供解决方案。

这在zmq中是可能的吗?那会是什么模式呢?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-05 17:25:01

是的,你可以按照你期望的方式来做这件事。只需绑定订阅服务器,然后与发布服务器连接到该订阅服务器。ZMQ没有指定哪个端应该是“服务器”或更可靠的端,哪个应该是“客户端”,或者是更短暂的端,特别是因为这个原因,这是切换正常范式的一个很好的理由。

编辑以解决新的澄清--

它应该可以在多台服务器上正常工作。通常,它的工作方式如下(本例中的操作顺序只是为了确保没有消息丢失,如果PUB套接字在SUB准备就绪之前就开始发送消息,这是可能的):

  1. 旋转服务器1.创建SUB套接字并绑定到地址:端口。
  2. 旋转服务器2.创建SUB套接字并绑定到地址:端口。
  3. 旋转一个芯片。该芯片将创建一个PUB套接字,并连接到服务器1地址:端口和服务器2地址:端口。
  4. 对其他九个芯片重复步骤(3)。
票数 5
EN

Stack Overflow用户

发布于 2014-08-05 18:07:24

对偶.SUB模型

哦,是的,每个.PUB-lishing实体可能有许多.SUB-s侦听,因此有两个-s满足.PUB/.SUB-primitive 的正式通信模式(一个说话-多听)

如前所述,您的每个绑定

.bind( aFixServer{A|B}_ipAddress_portNumber )

因此,允许每个.PUB-lishing

.connect( anAprioriKnownServer{A|B}_bindingNode_ipAddress_portNumber )

并且均大于.SUB-s,以接收它们的任何消息。

多服务器模型

如上文所示,{A|B}语法可自由扩展到{A|B|C|D|...},因此主消息传递模型将支持任何合理的多服务器扩展

Q.E.D.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25144604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档