【发布时间】:2017-05-21 11:15:18
【问题描述】:
如果您使用的是 PUSH 套接字,您会发现第一个连接的 PULL 套接字将获取不公平的消息份额。消息的准确轮换仅在所有 PULL 套接字都成功连接时才会发生,这可能需要几毫秒。作为 PUSH/PULL 的替代方案,对于较低的数据速率,请考虑使用 ROUTER/DEALER 和负载平衡模式。
因此,在 PUSH/PULL 中进行同步的一种方法是使用负载平衡模式。
对于下面这个特定的情况,我想知道是否有另一种方法来做同步:
我可以将 worker 中的 PULL 端点设置为阻塞,直到连接成功建立,然后通过 worker 的 PULL 端点向“sink”发送一条特殊消息。在 'sink' 收到 #worker 的特殊消息后,'sink' 会向 'ventilator' 发送一条带有 REQ-REP 的消息,以通知所有工作人员准备就绪。 “呼吸机”开始将工作分配给工人。 靠谱吗?
图片来自here
【问题讨论】:
标签: c++ zeromq message-passing