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 に答える