在具有以下数据流的分布式系统中:
- 客户端为分布式系统中的随机节点发送消息。
- 该节点检查该操作是否可以由他执行。如果不是,则将消息发送到其他节点。并且该过程一直持续到正确的节点。
所以系统有以下流程:
客户端 -> nodeX -> nodeY -> nodeZ
如果我想向客户端(从 nodeX)发送 OK 信号,该进程会使用 ZeroMQ 阻塞吗?
谢谢!
在具有以下数据流的分布式系统中:
所以系统有以下流程:
客户端 -> nodeX -> nodeY -> nodeZ
如果我想向客户端(从 nodeX)发送 OK 信号,该进程会使用 ZeroMQ 阻塞吗?
谢谢!
通常 zmq_send 不会阻塞,但在某些情况下它可以阻塞参见这里的概述,这取决于您使用的套接字类型。
如果无法到达您要发送到的节点/读取缓慢/网络速度慢或传输等,消息将排队。您可以设置消息队列(尚未传递的消息)到达时会发生什么的阈值一定大小,该阈值称为 ZMQ_HW。
当 ZMQ_HW 消息排队时,zmq_send() 是阻塞还是丢弃消息,你可以在上面提到的zmq_socket文档中看到。