我一直在阅读ZeroMQ,更具体地说是NetMQ,以及我看到的几乎每一个Pub/Sub示例,这些示例用于绑定发布服务器套接字,然后订阅服务器套接字连接到另一个。
所以我想知道是否可以做相反的事情,我的意思是绑定订阅服务器套接字,然后发布服务器连接到它
这可能吗?(我在文件中没有发现任何明确的内容)使用这种连接策略的缺点是什么?
任何帮助都是有用的。
是的,您可以逆转它,使用这种连接策略没有缺点。。。只要它适合你的目的。
在ZMQ中,"绑定"one_answers"连接"背后的驱动概念是,一侧通常被认为更可靠(通常会有更少的节点),另一侧被认为更瞬态(可能会有更多的节点)。可靠方将被视为您的"服务器",您应该在该方使用bind()
,瞬态方将被认为是您的"客户端"(或客户端s),您应该使用connect()
。
通常,我们认为一个稳定的"服务器"会不断地向许多"客户端"订阅者发布信息,这些订阅者可能来来往往。这在您看到的示例中得到了体现:在pub上绑定,在sub-上连接
但是,你也可以很容易地让一个稳定的"服务器"订阅连接到它的许多"客户端"发布者的任何输出,接受他们在可用时发送的任何信息。绑定到sub,连接到pub。
你也不局限于一台服务器,这只是一个最简单的例子——然而,如果你在同一台计算机上运行所有的套接字,你会受到更大的限制。用多个套接字绑定同一地址会产生冲突,但您可以随心所欲地将多个套接字连接到同一地址。
在许多情况下,通信的双方都希望可靠且长期运行,在这种情况下,将发送信息的节点视为服务器,将接收信息的节点作为客户端是很有用的。在这种情况下,我们回到pub上绑定,连接sub-