zeromq - 路由器经销商模式的优势

Mis*_*r_L 7 zeromq

任何人都可以提供一个使用zmq与路由器/经销商模式的真实示例,并解释它优于更简单的发布/订阅模式的优势?谢谢.

Dav*_*vid 9

一个'现实世界'的例子:股市模拟

路由器套接字是服务器(或"市场"),经销商套接字是客户端(或"交易者").

  1. 交易者通过向市场发送相关的"订单"消息来买入和卖出订单.
  2. 市场立即回复"确认"消息
  3. 在某个订单完成后,市场会向所有相关交易者发送"订单完成"消息.

使用pub/sub实现这种行为非常麻烦,因为您需要Market和Traders来运行Publisher和订阅者套接字以允许双向通信.如果所有已完成的交易都是"已发布"而不是直接发送给相关交易商,那么也会存在隐私问题.(交易员B不应该知道交易员A买入或卖出的东西).

什么使路由器套接字不同

从路由器套接字发送和接收稍微复杂一点,以允许异步响应:

  1. 任何传入消息在收到时都会在传入消息之前添加一个标识帧,这表示消息来自哪个客户端.
  2. 删除任何已发送消息的第一帧,并用于标识要将响应发送到哪个客户端.

'identity'是一个字符串,默认情况下将设置为每个连接客户端的唯一内容,但您可以通过套接字选项在客户端套接字上设置自定义标识.