重构 - 美股行情系统APP推送改造


图片来源:pexels.com

作者:梁鑫(资深架构师,多年云原生,微服务架构经验,开源SIA系列产品owner)

前言

今年开始,由于工作内容调整。开始负责美股港股产品的研发。之前的两篇文章,重构 - 在美股行情系统的实践美股交易架构实践分享了行情系统的重构和交易系统的建设。按照计划,接下来要改造的是 APP 的信息推送了。

APP 信息推送

目前行情产品采用的是定时请求机制,通过 HTTP 请求每隔若干时间从后端服务拉取一次行情数据,在这个时间间隔内数据是不会发生任何变化的。但当我们打开竞品比较时,发现他们的行情数据是以肉眼不可捕捉的速度变化的。明显这不是定时请求能够达到的效果,一定是通过建立 TCP 长连接,把数据源源不断的从后端服务推送到了用户的手机上。

1

   

消息推送的方式选择

熟悉信息传输的朋友肯定发现这种需求不需要实时返回数据,是典型的异步传输。一般可以采用两种方式来处理。一种是后端服务直接采用 TCP 方式传输到客户的手机上。另一种就是选择合适的消息服务器,让后端服务和客户手机进行解耦。明显我们会选择后者。

MQTT 协议基本是手机端进行消息通信的标准做法,让我们先了解一下消息队列遥测传输协议,它是一种基于发布订阅的轻量级通讯协议,该协议构建于 TCP/IP 协议上,最大优点在于以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。

2

   

选择何种 MQTT 产品

实现 MQTT 协议的消息产品不少,选择哪一款产品比较合适?我们的选择是 EMQ,为什么选择 EMQ 呢,我直接把 EMQ 官网描述照搬下来大家可以作为参考。

EMQ 设计目标是实现高可靠,并支持承载海量物联网终端的 MQTT 连接,支持在海量物联网设备间低延时消息路由:

  • 稳定承载大规模的 MQTT 客户端连接,单服务器节点支持 50 万到 100 万连接。

  • 分布式节点集群,快速低延时的消息路由,单集群支持 1000 万规模的路由。

  • 消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。

  • 完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持。

2.1

   

EMQ 的高可用方式

MQTT 服务器肯定需要支持高可用,我们是不能容忍单点故障的,但 EMQ 的高可用方式需要注意一个问题,EMQ 的集群需要一个 master 节点和若干个 slaver 节点,将 slaver 节点 join 到 master 节点组成集群,当 mater 节点宕机后需要 client 端进行重新连接才能正常 running。

EMQ 的高可用架构图如下:

3

   

使用 EMQ 服务需要考虑的三个问题

当我们把 EMQ 引入到我们的系统后,我们需要考虑三个潜在的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值