`
dalan_123
  • 浏览: 87393 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

关于实时消息推送系统的架构之浅见

 
阅读更多

最近,有一个朋友问了一个问题:如何实现实时消息推送架构,当时只是说了比较笼统的概念,并没有进行深入的探讨。再加上时间比较也就没有进行一个归总。刚好今天进行一个梳理。具体内容如下



 

那么整体的设计如上。接下来我们针对每一块进行剖析

1、协议的选择

   关于协议的选择这块,现在比较常用的方式:XMPP、MQTT、自定义协议等,那么关于每种协议的优缺点,这里面我们不进行细致描述。只要知道最终的目的:

   (1)、协议轻量、编解码速度快捷;

   (2)、流量消耗小

2、连接方式 常用的连接方式:

      轮询、长连接、websocket等各种方式同样具有不同的优缺点,具体的目的

    (1)、连接稳定;

    (2)、不同网络环境使用不同的心跳间隔;

    (3)、app连接消耗平衡;

3、海量连接 针对海量连接都会使用到负载均衡;常见的方式:

    lvs/nginx做负载均衡、服务端负载均衡、客户端负载均衡;首先我们应该明白国内的网络环境关于dns的问题;可以通过ip来直接完成;通过预埋ip或者提供webservice来获取相关的ip等方式;

 关于负载均衡:

          (1)、lvs负载均衡存在单点问题:可通过提供一个vip来做高可用

          (2)、服务端负载均衡:选择负载低的服务器

          (3)、客户端负载均衡:采用跑马策略来完成负载均衡,同时也解决跨运营商网络慢的问题

4、消息重复 一般情况下,在网络正常的情况下,消息的发送可能一个平衡的状态。但是在不同网络环境2G/3G/4G/WIFI等,可能我们就面临消息重复的问题。在这个问题上我们一般采取的方式通过将回执--响应转为

        (1)、第一阶段欲请求:服务端发送通知到客户端,客户端接收到通知之后返回最近接收消息的最大序列号(将msg绑定序列号);

        (2)、服务端验证序列号避免消息重复;

        (3)、第二阶段正式发送消息:发送消息

5、运维、扩展 在上图的架构中并没有存在 服务管理、运营监控以及预埋服务(解决dns问题)

6、架构介绍 整个架构在逻辑上,划分四层:

    (1)、接口服务:提供推送服务接入

    (2)、分发服务:主要完成下行消息和上行消息的路由;同时提供一个对应的路由表,主要提供 clientId、GroupId、ServerId之间的关系映射。

    (3)、订阅信息:通过订阅的不同的消息,完成对应的消息的推送

    (4)、存储:防止消息的丢失 基本上整个架构就这样。其中有很多细节并没有进行一个很详细的阐述。同时在构建一个实时推送系统存在很多坑。这里面也没有进行详细描述和分析。

  • 大小: 16.8 KB
分享到:
评论

相关推荐

    智能化系统建设之浅见.pdf

    本文探讨了建筑智能化系统建设的策略,以某建筑企业的办公楼改造项目为例,重点介绍了如何整合一卡通系统、门禁控制系统、无感通行系统以及会议预约系统,以实现高效的数据共享和应用集成。 首先,文章强调了业主对...

    完善灾害应急管理系统之浅见.docx

    《完善灾害应急管理系统之浅见》 中国作为一个自然灾害频发的国家,灾害种类繁多,影响范围广泛,因此,建立健全的灾害应急管理系统对于我们至关重要。应急管理,即公共危机管理,不仅需要政府的主导,还需要全社会...

    电力系统自动化与智能技术之浅见.pdf

    电力系统自动化是电力系统二次系统的核心组成部分,主要负责对电力系统的运行状态进行实时监控、控制和调度。它通过自动化决策系统和数据处理系统,实现电力系统的全面或局部自动化,确保操作的精确性和及时性,提升...

    电力系统继电保护的安全管理之浅见.pdf

    继电保护装置的主要任务是对电力系统中的设备进行实时监控,防止因故障导致的停电事件,保障电网的正常供电。当系统运行正常时,继电保护装置监测设备状态,提供运行数据;在故障发生时,快速、准确地隔离故障设备,...

    revit二次开发之浅见

    在本篇文章中,我们将探讨 Revit 二次开发中的一些浅见,包括结构模型中编程创建墙饰条、在工艺模型中创建管道类型、可停靠对话框的使用界面以及参数的更新等。 结构模型中编程创建墙饰条 在 Revit 二次开发中,...

    建设水土保持生态文明之浅见.pdf

    建设水土保持生态文明之浅见.pdf

    PCB企业的环保管理之浅见.pdf

    《PCB企业的环保管理之浅见》这篇文章深入探讨了PCB企业在环保管理方面所面临的挑战,并提出了实现绿色环保的策略。文章指出,对于PCB企业而言,环保管理并非仅仅是法律的要求,更是企业社会责任的体现,它能够帮助...

    校园网的网络安全问题之浅见.pdf

    校园网的网络安全问题之浅见.pdf

    中学思想政治课课堂语言艺术之浅见.pdf

    中学思想政治课课堂语言艺术之浅见.pdf

    单一窗口项目产品化及运营浅见.docx

    * 需要引入简单化的业务流程引擎,实现业务流程流转环节可进行角色权限控制、流程分发、支持报文、支持不同条件的判定转发、支持不同的消息推送。 * 需要开发运维监控模块,实现监控单一窗口项目承建的内容越多的...

    对建筑设计企业信息化建设需求之浅见.docx

    对建筑设计企业信息化建设需求之浅见.docx

    白洋淀防洪治理工作之浅见

    ### 白洋淀防洪治理工作之浅见 #### 水利背景与重要性 白洋淀作为华北平原上的一个大型淡水湖泊,具有重要的生态和水资源调节功能。其不仅承载着周边地区的生活用水和农业灌溉需求,还是太清河流域的重要组成部分...

    关于税务文化建设的浅见与思考.docx

    关于税务文化建设的浅见与思考.docx

    企业信息化建设之浅见.docx

    总之,企业信息化是一个全面而深入的过程,涵盖了业务流程、组织结构、员工思维、技术设施和安全管理等多个方面。只有全面、系统地推进信息化建设,才能真正实现企业的转型升级,增强市场竞争力,实现可持续发展。在...

    完善内控制度之浅见.docx

    内控制度是企业在日常运营中确保管理目标得以实现的关键机制,涵盖了组织结构、职责划分、监控考核和协调机制等多个方面。它旨在明确各部门的权责,构建一个完整的、相互关联和制约的控制系统。随着企业的发展,内控...

    初中语文语文论文让语文课堂成为学生的乐园__初中语文教学之浅见

    初中语文语文论文让语文课堂成为学生的乐园__初中语文教学之浅见

    高职动漫专业色彩教学改革之浅见.docx

    【高职动漫专业色彩教学改革之浅见】 在当前的高职教育背景下,动漫设计与制作专业作为新兴的艺术领域,其色彩教学的重要性不容忽视。然而,现有的色彩教学体系在多个方面存在问题,亟待改革。 首先,专业定向不...

    多媒体课件制作及课堂教学之浅见

    课件应该优化课堂教学结构,提高教学效率,且不应过多占用教学时间进行调试和控制。 多媒体课堂教学的组织和实施: 精心组织课堂教学是提升多媒体教学质量的关键。教师需要合理安排上课节奏,确保教学内容的连贯性...

    论文研究-从物理学到事理学的一些浅见.pdf

    论文研究-从物理学到事理学的一些浅见.pdf, 本文是想在[1]、[2]中将闭物理系统与最优控制系统相比拟所提出的二者具有某种意义下的“等价性”工作的基础上,进一步考虑如何利用协同学、耗散结构论等开物理学的成果为...

Global site tag (gtag.js) - Google Analytics