C++ 在ZeroMQ中执行拉-推同步的另一种可靠方法
如果您使用的是PUSH套接字,您会发现第一个连接的PULL套接字会占用不公平的消息份额。只有在成功连接所有PULL套接字时,才会发生消息的精确旋转,这可能需要几毫秒的时间。作为推/拉的一种替代方案,对于较低的数据速率,考虑使用路由器/经销商和负载平衡模式。 因此,在推/拉模式中进行同步的一种方法是使用负载平衡模式 对于下面这个特定的情况,我想知道是否有其他方法进行同步: 我可以将worker中的PULL端点设置为block,直到连接成功设置,然后通过worker的PULL端点向“sink”发送一条特殊消息。“sink”收到#工作人员的特殊消息后,“sink”向“呼吸机”发送一条带有REQ-REP的消息,通知所有工作人员已准备就绪“呼吸机”开始将工作分配给工人。 它可靠吗C++ 在ZeroMQ中执行拉-推同步的另一种可靠方法,c++,zeromq,message-passing,C++,Zeromq,Message Passing,如果您使用的是PUSH套接字,您会发现第一个连接的PULL套接字会占用不公平的消息份额。只有在成功连接所有PULL套接字时,才会发生消息的精确旋转,这可能需要几毫秒的时间。作为推/拉的一种替代方案,对于较低的数据速率,考虑使用路由器/经销商和负载平衡模式。 因此,在推/拉模式中进行同步的一种方法是使用负载平衡模式 对于下面这个特定的情况,我想知道是否有其他方法进行同步: 我可以将worker中的PULL端点设置为block,直到连接成功设置,然后通过worker的PULL端点向“sink”发送
图片来源于是,只要
接收器
知道在告诉呼吸机
可以开始发送消息之前要等待多少工人
。有一个问题是,如果在接收器连接之前启动,来自工人的特殊消息是否能够通过-但你可以让他们一直发送特殊消息,直到他们开始从呼吸机获取数据。如果这样做,Sink
当然会忽略它接收到的任何重复项
当然,这与工人
与呼吸机
有一个带电的工作连接并不完全相同,但这本身可能会发送工人
收到的特殊不做任何事情的信息。当他们收到其中一条时,他们就可以开始向接收器发送特殊消息了