ルータ/ディーラーのパターンでzmqを使用する現実的な例を提供し、より単純な公開/購読パターンよりも利点を説明できますか?ありがとう。zeromq - ルータのディーラーパターンの利点
2
A
答えて
3
A '現実世界の例:株式市場のシミュレーション
ルータソケットは、サーバ(または「市場」)で、ディーラーソケットは、クライアント(または「トレーダー」)です。
- トレーダーは、市場に適切な「注文」メッセージを送信することで、売買注文を行います。
- マーケットは即座に「確認応答」メッセージで応答します
- いつか注文が完了すると、Marketは 「注文完了」メッセージをすべての関連トレーダーに送信します。
このような振る舞いは、パブリッシャーとサブスクライバーを両方向通信できるようにマーケットとトレーダーの両方が必要とするので、pub/subで実装するのはかなり面倒です。また、完了したすべてのトランザクションが関連するトレーダーに直接送信されるのではなく「公開」されていれば、プライバシーに関する懸念もあります。 (トレーダーBは、トレーダーAが何かを購入または売却したことを知るべきではありません)。送信とルータソケットから受信
異なるルータソケットを作る何
は、非同期応答を可能にするもう少し複雑です:
- 着信メッセージにより、着信メッセージの先頭に付加アイデンティティフレームを持っていますこれは、どのクライアントからのメッセージであるかを示します。
- 送信されたメッセージの最初のフレームが削除され、どのクライアントに応答を送信するかを識別するために使用されます。
'identity'は文字列であり、デフォルトでは接続されたクライアントごとに固有のものに設定されますが、ソケットオプションを使用してカスタムIDをクライアントソケットに設定できます。
関連する問題
- 1. リアクティブプログラミングでのアグレッシブタイムアウトの利点利点
- 2. Auth0の利点
- 3. directExecutorの利点
- 4. クラウドコンピューティングの利点
- 5. ルビーセットの利点
- 6. マネージコードの利点
- 7. WTPの利点
- 8. ジェネリックコンストラクタの利点
- 9. リポジトリパターンの利点
- 10. アークオーバーラケットの利点
- 11. 利点
- 12. 利点
- 13. 利点
- 14. 利点
- 15. SQL - JOINの利点?
- 16. Hibernateコールバックの利点
- 17. Javaクローニングの利点
- 18. lazyloadの利点は?
- 19. スコープブロックの利点は?
- 20. kafkaマルチブローカーの利点
- 21. Javascriptオブジェクトプロトタイプの利点?
- 22. プライベートレポの利点/欠点の管理
- 23. Entity Framework DBSetの主要な利点と利点<MappingTable>
- 24. ロスレス圧縮の利点と欠点?
- 25. Android NDKの利点と欠点
- 26. DefaultControllerFactory.CreateController上のIControllerActivatorの利点
- 27. パネル内のテーブルの利点
- 28. スーパータイプのサブタイプテーブルの利点
- 29. カスタムパスの設定の利点?
- 30. ベクトル上のスライスの利点?
この例は、zeromqのWebサイトhttp://zguide.zeromq.org/js:rtdealerから入手してください。関連するディーラーだけがルータからメッセージを受け取ることをどのように保証しますか?私が見ることのできるところから、すべてのディーラーは同じソケットにバインドされ、同じメッセージを受け取ります。 –
私はうまくいけば、より良く説明するために私の答えを更新しました。 'broker.send([identity、 ''、 'Work harder']); ' – David
ブローカは実際にIDパラメータを送信しますが、この例のすべてのクライアントは次のようになります。同じTCPソケットをリッスンします。他のクライアントがメッセージを受け取らないようにするにはどうすればいいですか? –