PUSHソケットを使用している場合は、接続する最初のPULLソケットが不公平なメッセージの共有を取得することがわかります。メッセージの正確なローテーションは、すべてのPULLソケットが正常に接続されている場合にのみ発生し、数ミリ秒かかる場合があります。 PUSH/PULLの代わりに、データレートを低くするために、ROUTER/DEALERとロードバランシングパターンの使用を検討してください。ZeroMQのPULL-PUSH同期を行うもう1つの信頼できる方法
PUSH/PULLで同期を行う1つの方法は、負荷分散パターンを使用しています。以下、この特定のケースでは
、私は同期を行うための別の方法があるかどうかを疑問に思う:
私は、接続に成功し、セットアップまでブロックするために労働者にPULLエンドポイントを設定し、送信することができます作業者のPULLエンドポイントを経由して「シンク」する特別なメッセージ。 'シンク'が#ワーカーの特別なメッセージを受け取った後、 'sink'はREQ-REPでメッセージを 'ventilator'に送信して、すべてのワーカーが準備完了であることを通知します。 「人工呼吸器」は仕事を労働者に分配し始める。 それは信頼できるですか?
絵は限りSink
が、それはメッセージの送信を開始するためにOKだとVentilator
を伝える前に待つためにどのように多くのWorkers
知っているように、はいhere