vivo推送平台架构演进

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 2021 vivo开发者大会 互联网技术专场 vivo推送平台系统架构师
2. 限流 高性能 降级 内容审核 数据一致性 容灾降级 异常流量识别、处理 2021.12.16 vivo开发者大会-互联网技术专场
3. 2021.12.16 vivo开发者大会-互联网技术专场
4. 2021.12.16 vivo开发者大会-互联网技术专场
5. 认识推送 手机客户端主动和服务器建立socket连接,应用运营、开发人员通过后台服务 接口将消息、指令主动下发给手机客户端,手机客户端收到消息后自行处理或 者在通知栏展示。 2021.12.16 vivo开发者大会-互联网技术专场
6. 推送平台后台 亿级同时在线 推送平台 核心能力介绍 推送客户端 应用商店 浏览器 ... ... 内容和服务 分发的通道 数千万同时在线 超过1亿注册用户 抖音 是指:一个常驻在手机的后台,通过心跳 机制,使手机和服务器保持一条 ,为公 司内外部业务提供全天候实时的信息和服务传输能力。 1.实时百万/秒推送速度 3.实时推送效果分析 2.日最高122亿推送量 4.全量推送消息实时审计 2021.12.16 vivo开发者大会-互联网技术专场
7. 2021.12.16 vivo开发者大会-互联网技术专场
8. 推送平台的业务发展 立项 1亿 10亿 40亿 75亿 100+亿 服务内部业务 内销对外部应用 开放 IM 互联短信 内容安全审核 视频 IoT WebSocket 2021.12.16 vivo开发者大会-互联网技术专场
9. 推送平台架构演进 逻辑 服务 内部业务 自建机房 自建机房 接入 网关 云上 离线 统计 内部 业务 离线 统计 存储 自建机房 逻辑 服务 内容 审核 分布式 缓存 实时 统计 离线 统计 TiDB 全局调度 量级管控 逻辑 服务 华 南 存储 云上 华 东 接入网关 华 北 华 南 云上 华 东 华 北 接入网关 2021.12.16 vivo开发者大会-互联网技术专场
10. 消息服务 业务 SaaS & PaaS 浏览器 应用商店 菜鸟裹裹 快手 天气 互联短信 视频 ... Jovi物联 运营、系统消息下发 ... 单向 双向富媒体 跨 平 台 ( Android 、 iOS、 IoT移动终端消息队列, PC)双向富媒体通信,即 发布/ 订阅,设备互联 时通信, 群聊,聊天室... 发布/订阅 服务 push 消息 服务 中台 IM VBroker 效率组件 效率组件 (规划中) VRPC Persisten Connection GateWay OSS 移动端与后台通信服务框架,简化开发工 (Operation Support Systems 运营支撑系统) 全局GSLB, 流量调度,立体化监控,问题诊断/修复 作,提升业务开发效率:提供多语言、多 协议代码生成, 支持双向Stream通信, 支持Tars、Dubbo 2021.12.16 vivo开发者大会-互联网技术专场
11. 2021.12.16 vivo开发者大会-互联网技术专场
12. HTTPS HTTPS Tars 系统概览 SDK 推送 内容 审核 运营系统 IM 大数据 VBroke r SDK Dubbo 运营接口 Dubbo 服务接口 服务代理 消息接口 MQ Adapter 通信服务 长连接网关 Kafka RMQ 消息代理 存储接口 DAO MySQL TiDB 2021.12.16 vivo开发者大会-互联网技术专场
13. t1 监控与质量度量 t1 推送网关 推送网关 推送逻辑 推送逻辑 t2 t2 长连接网关 长连接网关 统计服务 t1 和 t2 的时间基准不一致 95% 80% > 70% > 50% 2021.12.16 vivo开发者大会-互联网技术专场
14. 无锁 C1M 与 长连接保活 内存对齐 池化 硬件指令解密加速 动态心跳 网卡软中断优化 热插拔组件 WebSocket MQTT 私有二进制 NAT C++ 多协议接入长连接网关 8C16G 8C32G 连接 6.3GB 内存 proxy firewall middle-box 连接 (线上稳定) 业界理想 migratorydata 12C 96G 1200W 网关动态心跳 2021.12.16 vivo开发者大会-互联网技术专场
15. 可视化操作 web console 策略制定 流量调度系统 global scheduler 全国3地接入 流量调度 全局负载均衡 接入ip 重定向 流量控制 策略存储 策略下发 dispatcher dispatcher HTTPDNS vphone 负载信息上报:连接数、请求量 Set 华中 Set 华北 长连接网关 1 长连接网关 2 Set 华南 长连接网关 长连接网关 vphone vphone vphone 华北 华中 华南 ip redirect 2021.12.16 vivo开发者大会-互联网技术专场
16. 单机 30W+ TPS 32C64G cache hit: 99.9% 高并发推送 推送网关 百亿级 映射关系转换 推送网关 ... 映射关系转换 全局流量调度 分布式缓存 TiDB 消息下发 ... 消息下发 长连接网关 ... 长连接网关 Redis 单机 2W+ TPS 32C16G cache hit: 99% 业务后台 流控 容灾 多级回压 在线热点迁移 单机 长连接线上环境:170W 8C 32GB(实际使用8GB) 手机 手机 2021.12.16 vivo开发者大会-互联网技术专场
17. 限流控速 针对API上层业务方调用推送 标签推、全量推等大量级推送 下游消息下发模块对限速消息 接口频率进行应用维度的限制 任务,在推送上游tag模块中 通过分布式限流防止流量突增 进行控速下发 增加业务方压力 2021.12.16 vivo开发者大会-互联网技术专场
18. HTTP接口和Dubbo接口利用轮询负载 均衡策略将接口分发到各个API节点 API内对应用维度使用RateLimiter令牌 桶限流算法进行请求频率限制 推送网关限流 令牌桶 各方面应用 推送下 游模块 令牌调节器 传入的请求 分配到令牌 令牌 不足 2021.12.16 vivo开发者大会-互联网技术专场
19. 延迟调度线程 poll task Redis+lua thread Redis做为分布式集群中的中间件保证线程安全, 任务 10 系统内部限速 是否平滑 N lua脚本执行限流逻辑保证原子性 30 12 RateLimiter Y 15 20 RateLimiter 任务延迟队列 40 同样通过令牌桶算法实现RateLimiter,用于 校验是否被限速以及计算出限速后的延迟时间 等待队列 thread thread thread 推迟工作线程池 …… thread 将限速的推送预计算出延期时间,利用时间构造 小顶堆的延迟队列,任务重试时则从延迟最小的 推送开始重试 2021.12.16 vivo开发者大会-互联网技术专场
20. Pusher 针对单推、群推这种非任务级别的推送。 以clientId做一致性hash将推送分发到 pusher服务,服务内利用Redis实现分 系统内部限速 布式漏桶限流方式进行控速判断。 是否限速 tryAcquire Broker 例如 限速:1000 则每个分片阈值为:10 限速下发消息的设备加入本地缓存 和Redis缓存的等待队列中,轮 询检测进行重试。 number自增序列打散 Redis 本地保存延迟时间: 当前时间+目标量/速度 Pusher 本地缓存 Redis 空待队列 自增:2 自增:3 自增:3 分片:0 分片:1 。。。 分片:99 轮询检测 2021.12.16 vivo开发者大会-互联网技术专场
21. 熔断降级 cp 手机用户 缓冲通道 传统架构 1. 为了避免突发流量,冗余部署大量机器,成本高,资源浪费严重 2. 在面临大并发突发流量时,无法及时扩容,导致推送成功率降低 优化架构 1.增加缓冲通道,使用消息队列和docker云主机,系统改动小 2.最小机器部署,无人工介入,根据系统负载实现自动扩缩容 2021.12.16 vivo开发者大会-互联网技术专场
22. 团队沟通漏斗模型 代码自动生成测试用例 基于Karate的 自动化测试系统 gherkin 编写测试模板 查看测试报告 保存到管理平台 html karate 输出测试报告 word word 持久化到DB html JVM运行karate 写入feature xmid excel JVM动态DNS 2021.12.16 vivo开发者大会-互联网技术专场
23. 推送系统 谛听 同步审计 敏感词库 不送审词库 本地缓存 安全:内容安全 相似度聚类 AI反垃圾 影响面策略 CP 接入网关 异步审计 任务调度 应用分级审计策略 政府类 … 资讯类 人工反垃圾 谛听人工审核 消息分类 推送系统运营平台 监控告警 在线诊断 撤销回收 推送运营人员 2021.12.16 vivo开发者大会-互联网技术专场
24. 2021.12.16 vivo开发者大会-互联网技术专场
25. 总结展望 实现全系统的 数据一致性 各子完善系统 容灾降级能力 优化接入方式 降低业务接入门槛 业务请求异常流量识别 移动端异常流量识别 2021.12.16 vivo开发者大会-互联网技术专场
26. 2021 vivo开发者大会 互联网技术专场 李青鑫 | vivo推送平台系统架构师 相关技术文章后续 将在公众号发布 敬请关注

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-18 02:32
浙ICP备14020137号-1 $Carte des visiteurs$