【发布时间】:2016-08-23 22:30:09
【问题描述】:
考虑以下设置。我将connect() 多个DEALER 套接字(客户端)连接到另一个DEALER,绑定到一个地址(服务器)。正是其中一个客户端循环调用recv(),而其他客户端可能偶尔会向服务器发送一些东西。
服务器套接字会尝试将发送的消息分发给那些没有收到任何东西的客户端吗?在 ZeroMQ 指南和 zmq_socket 手册页中,我找不到经销商套接字如何处理工作分配。
我使用 ZMQ 4.1。
【问题讨论】:
-
尾部注释“在
zmq_socket联机帮助页中也没有”是不公平的。手册页定义了DEALER-side 行为,应在分布式处理上下文中理解。由于多种原因,本端“行为原语”不进行远端握手流控制。如果有这种需要,软件架构师可以根据他们的个人需求创建额外的抽象和信令层,以添加相互握手(其中O(1)可扩展性、延迟包络和资源节约是任何此类添加的最终目标-努力) -
我说找不到,现在我看到了,明白了:)
-
您可能会采取不同的方法,让您的服务器成为router socket。使用路由器套接字固有的 ID,您可以完全控制服务器发送消息的位置。
标签: message-queue zeromq distributed-computing