vivo 推送系统的容灾建设与实践
时间:2026-10-21 13:58 来源:未知 人气:
一、推送系统介绍
vivo推送平台是vivo公司向开发者提供的消息推送服务,通过在云端与客户端之间建立一条稳定、可靠的长连接,为开发者提供向客户端应用实时推送消息的服务,支持百亿级的通知/消息推送,秒级触达移动用户。
推送系统主要由接入网关,逻辑推送节点,长连接组成,长连接负责与用户手机终端建立连接,及时把消息送达到手机终端。
推送系统的特点是并发高、消息量大、送达及时性较高。
vivo推送系统现状最高推送速度140w/s,单日最大消息量200亿,端到端秒级在线送达率99.9%。同时推送系统具备不可提前预知的突发大流量特点。针对推送系统高并发,高时效,突发流量等特点,如何保证系统可用性呢?本文将从系统架构,存储容灾,流量容灾三个方面进行讲述,推送系统是如何做容灾的。
二、系统架构容灾方案
2.1 长连接层容灾
长连接是推送系统最重要的部分,长连接的稳定性直接决定了推送系统的推送质量和性能,因此,需要对长连接层做好容灾和实时调度能力。
原有推送系统架构是长连接层都部署在华东,所有vivo IDC逻辑节点通过VPC与华东的Broker建立连接,手机端跟华东的broker进行长连接通信。这种部署方式存在以下问题。
- 问题一:华北、华南手机都需要连接华东的Broker,地域跨度大,长连接网络稳定性和时效性相对较差。
- 问题二:逻辑层跟华东的Broker之间由一条VPC连接,随着业务的发展,推送流量越来越大,带宽会出现瓶颈,有超限丢包的风险。另外当该VPC出现故障时,会造成全网消息无法送达。
注:长连接层节点名为Broker。
原始长连接架构图:
基于以上架构存在问题,进行了优化,将Broker进行三地部署,分别部署在华北,华东,华南。
华北、华东、华南三地用户采用就近接入方式。
优化后的架构,不仅可以保证长连接网络稳定性和时效性。同时具有较强的容灾能力,华东,华南Broker通过云网跟华北Broker连接,华北Broker通过VPC与vivo
IDC连接。当华北、华东、华南某个地区Broker集群故障或者公网故障,不会影响到全网设备收发消息。但是这种方式还是存在一个问题,就是某个地区Broker集群故障或者公网故障,会出现该区域部分设备无法收到推送消息的情况。
三地部署后的架构图:
针对上述单个地区异常导致该区域部分设备无法收到推送消息的问题,我们设计了一套流量调度系统,可以做到实时流量调度和切换。global scheduler节点负责策略调度和管理。