在ZeroMQ中为节点提供客户端和工作人员功能

时间:2017-06-28 23:28:28

标签: python-2.7 zeromq

我需要设计一个点对点网络,以便使用ZeroMQ进行通信。阅读关于和谐模式的指南第8章让我觉得这是可能的,但我对作者提出的特定观点感到非常困惑。例如,我理解每个节点都有自己特定的经销商套接字的需要,但我不明白他如何选择格式化路由器套接字。每个节点是否都有自己的路由器插槽,如果是,它是如何集中的?如果没有,我将如何使用集中式路由器插座与各个经销商进行通信。最后,这种和谐模式真的是同行吗?根据我的理解,它需要一个集中的“代理”来促进整个系统,而不是让每个节点直接相互连接?提前谢谢。

1 个答案:

答案 0 :(得分:0)

其他响应者无疑可以在这里和那里填写,但据我所知,“路由器套接字的格式”是通过ROUTER套接字从其他对等端到达的消息带有UUID预先填写的消息部分。 ROUTER套接字发明了随机UUID,每个UUID对应一个连接到它的远程对等体。图28附近有一些信息here

您可以使用此UUID记住此消息来自哪个对等方,以便您可以将以后收到的消息与同一对等方关联。从技术上讲,所有传入的消息都通过单个ROUTER套接字进行多路复用,UUID允许您将它们解复用到来自不同对等体的单独消息流中。

同时,每个连接的对等端都有一个DEALER套接字。这用于将消息发送回该对等方。因此,您需要为每个对等方存储以下项目:UUID,DEALER套接字。

请注意,由于ZMQ3.0不是UUID,因此它是一个随机的32位数字。但它有同样的目的。