1、极光推送后台系统架构实践曾振波极光开发者技术部推送开发组技术负责人自我介绍极光推送后台开发工程师多年互联网开发经验,专注后台开发技术。2016年加入极光,负责极光推送平台架构设计及开发,主导包括K8S在内的技术架构实施落地,推动系统架构的演进,构造支撑海量用户的推送系统,对大规模分布式系统架构及设计有深入的理解。目录 极光推送服务架构 关于极光 消息推送系统面临的挑战 极光推送相关架构 极光推送后台系统架构 后台系统架构基本原则 链接管理 系统安全 新技术的应用关于极光10.亿36.9 107.6198亿万万开发者 APP 移动终端 月独立活跃设消息推送系统面临的挑战消息实时性触达率要求亿级长
2、连接用户SDK多版本并存移动网络环境极光推送服务架构API用户筛选用户分发极光推送后台系统架构iOS SDK Android SDK WPhone SDKConn GWSISRegister TagAlias SegmentBroadcast OnlineCache StatCenterXPNSAPIPushTask极光推送后台系统架构模块化01030502异步化并行化缓存化040608程序及系统优化基础组件服务化链接管理0709系统安全新技术的应用K8S部署业务极光推送后台系统架构模块化01 模块业务逻辑All In导致相互影响,更新升级难度大 功能按照业务拆分解耦SegmentOnline
3、MsgConn 数据和业务分离 快速迭代 模块间通过MQ/RPC交互极光推送后台系统架构异步化02 充分利用资源,减少请求等待时间,提升系统吞吐量 消息化请求 MQ-RabbitMQ,RocketMQ 模块间解耦 IDC数据同步 异步RPC ICE-负载均衡,AMI,AMD,多线程极光推送后台系统架构并行化03 横向扩展处理能力 数据分片存储Mng0Mng2Mng3 多节点+分片+多副本架构 数据读写动态路由 请求并行处理SegmentMQ 模块级别并行OnlineMsg OnlineMsg OnlineMs 代码级别并行极光推送后台系统架构缓存化04 热点数据全部缓存 加快数据访问,减少请求
4、处理时间 多级缓存 本地缓存 Redis,Couchbase,LevelDB(PIKA),定制化极光推送后台系统架构程序及系统优化05 内存 静态分配 内存池 内存对齐 CPU Affinity 网卡多队列 用户态协议栈(DPDK)极光推送后台系统架构基础组件服务化06 业务方透明 统一管理 屏蔽后端变化 AutoScale,Failover,AutoRecover JMQ-RabbitMQ,RocketMQ JCache-Redis,LevelDB(PIKA)极光推送后台系统架构链接管理07 量级大,网络复杂,DDOS攻击 动态管理 就近接入 自动化管理接入网关 自动扩容,应对网络攻击极光推
5、送后台系统架构调度中心Conn ASDKConn BConn C健极光推送后台系统架构IDC3CIDC1MQMQAPISegmentXPNSIDC4CPushTaskMQMQIDC5CIDC2MQMQAPISegmentXPNSIDC6CPushTask极光推送后台系统架构系统安全08 网络安全 对外业务隔离,异地多机房部署,健康检查,业务快速部署及调度 通信安全 SSL,私有加密协议 服务安全 安全校验,异常行为识别,过载保护,白名单/黑名单,服务降级 监控及告警 多维度监控,告警系统极光推送后台系统架构K8S部署业务09 原有系统的运维工作繁杂,资源利用率低 弹性扩容 配置统一管理 内外集群隔离 Pod包含多个容器-辅助容器,业务容器 业务模块代码架构调整 监控体系调整极光推送后台系统架构结束语 高性能/低成本、高可用、高运维 只用验证过的开源组件 自研替代开源 能并行就不要串行 能异步就不要同步 保持简单,快速迭代 不要过早优化,架构是演进出来的