从0到1构建push服务 — 整体架构设计(一)

推送服务是一个老生常谈的问题了,目前业界也有很多解决方案,但如何从0到1构建一个高效、稳定的push服务呢,我在这里跟大家分享一下整个过程。

整体架构图

Paste_Image.png

时序图

时序图 (1).png

1. 客户端首先通过Router Serv获取可用的Conn Serv IP和Port。
  2. 根据第1步获取的IP和Port建立长连接,建立好以后发送客户端数据用于注册(注册的意思就是要标识连接跟客户端的对照关系,比如帐号+终端类型等)。
  3. 后台通过手动或者API的方式写入消息到MQ中,Push Serv通过轮训或者订阅的方式获取MQ消息,并通过查询客户端和机器IP的对照关系,选择推送到特定的Conn Serv。
  4. Conn Serv获取到要推送的消息,传递给对应的客户端

技术难点

  • 自定义协议
  • 服务高性能和高可用
  • Conn serv多端口监听和转发
  • 客户端和描述符对应关系存储
  • 数据统计(送达率,失败率等)

接下来会根据以上几点进行详细介绍……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容