首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zeromq -路由器经销商模式的优势

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

Stack Overflow用户
提问于 2016-08-26 18:15:12
回答 2查看 5.8K关注 0票数 10

谁能提供一个将zmq与路由器/经销商模式结合使用的真实示例,并解释其相对于更简单的发布/订阅模式的优势?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-08-30 02:29:42

一个“真实世界”的例子:股票市场模拟

路由器套接字是服务器(或“市场”),经销商套接字是客户端(或“交易员”)。

  1. 交易员通过向市场发送相关的“订单”消息来下买入和卖出订单。
  2. 市场会立即以“确认”消息进行响应。稍后,当订单完成时,市场会向所有相关的交易员发送“订单完成”消息。

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

路由器套接字的不同之处在于

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

  1. 任何传入消息在收到时都会在传入消息前面加上一个标识帧,指明该消息来自哪个客户端。
  2. 任何已发送消息的第一个帧都将被删除,并用于标识要将响应发送到哪个客户端。

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

票数 13
EN

Stack Overflow用户

发布于 2019-08-08 22:37:16

经销商将他们的客户ID与每条消息一起发送。路由器能够接受来自多个经销商的连接,并且每次收到消息时,它都能够辨别哪个客户端发送了该消息。它还能够通过引用特定客户端的ID来向其发送消息。

现实生活中的例子:游戏服务器允许客户端加入一个房间,直到它被填满。它跟踪房间里的每个客户ID。当房间已满时,它循环遍历该房间内的每个客户端ID,并向它们发送一条“游戏开始”消息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39163872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档