2010-09-21 67 views
0

在具有以下的數據流的分佈式系統:ZeroMQ基於分佈式系統

  1. 客戶端發送的消息在分佈式系統中的隨機節點。
  2. 節點檢查操作是否可以由他執行。如果不是,則將消息發送到其他節點。並且該過程一直持續到正確的節點。

所以該系統具有以下流程:

客戶端 - >節點X - >節點Y - > nodeZ

如果我想OK信號發送給客戶端(從節點X),將在使用ZeroMQ的進程塊?

謝謝!

回答

1

通常zmq_send不會阻塞,但有些情況下它可以阻塞 請參閱概述here,它取決於您使用的套接字類型。

如果您發送到的節點無法到達/讀取緩慢/網絡傳輸速度慢或傳輸速度慢等問題,則會排隊郵件。您可以設置閾值,以瞭解消息隊列(消息尚未傳送)達到一定的大小,該閾值稱爲ZMQ_HW。

當ZMQ_HW消息排隊時,無論zmq_send()是否阻塞或丟棄消息,都可以在上面提到的zmq_socket文檔中看到。