我正在使用ZEROMQ进行分布式消息传递应用程序。需要将客户端(DEALER套接字)连接到多个服务器(服务器端的ROUTER套接字)。我在CLIENT方面有哪些选择?
我尝试了选项2 - 连接到多个端点但是消息总是转到第一个连接的端点。遵循以下步骤:
在DEALER套接字中,如果特定端点连接到多个端点,则无法在特定端点上发送消息。
有什么想法吗?
答案 0 :(得分:5)
ZeroMQ将某些行为编码为套接字类型。这些主要涉及:
DEALER套接字是一种可以连接到多个对等体的套接字,并使用LRU(最近最少使用的,也称为循环法)来决定哪个对等体获取每条消息。如果您不想要这种行为,那么您不希望DEALER套接字具有多个对等体。
如果您想确定哪个对等方获得了消息,则有两种选择:
在运行时,使用
socket.connect(endpoint)
将另一个端点添加到套接字。我需要重新连接吗?
不,您不需要重新连接。您可以在程序中随时添加(和删除)对等项。