0

在具有以下数据流的分布式系统中:

  1. 客户端为分布式系统中的随机节点发送消息。
  2. 该节点检查该操作是否可以由他执行。如果不是,则将消息发送到其他节点。并且该过程一直持续到正确的节点。

所以系统有以下流程:

客户端 -> nodeX -> nodeY -> nodeZ

如果我想向客户端(从 nodeX)发送 OK 信号,该进程会使用 ZeroMQ 阻塞吗?

谢谢!

4

1 回答 1

1

通常 zmq_send 不会阻塞,但在某些情况下它可以阻塞参见这里的概述,这取决于您使用的套接字类型。

如果无法到达您要发送到的节点/读取缓慢/网络速度慢或传输等,消息将排队。您可以设置消息队列(尚未传递的消息)到达时会发生什么的阈值一定大小,该阈值称为 ZMQ_HW。

当 ZMQ_HW 消息排队时,zmq_send() 是阻塞还是丢弃消息,你可以在上面提到的zmq_socket文档中看到。

于 2010-09-21T20:00:26.407 回答