抖音直播亿级并发下的高可用技术实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 抖音直播亿级并发下的高可用
技术实践
夏睿
字节 抖音直播服务架构负责人
2.
3. • 直播业务&架构复杂性
• 典型场景的高并发解决方案
• 核心链路的高可用保障方案
• 大型直播活动重保经验
4. 直播业务介绍
5. 业务复杂度
•
分发入口多
推荐、搜索、关注、天窗、同城、标签等300+场景
•
业务形态
秀场、游戏、连麦、PK、KTV、演唱会等
•
涉及领域多
涵盖电商、游戏、社交等领域,上百种玩法
6. 组织架构复杂度
创业
高速发展期
成熟期
多业务大规模发展
业务
组织
7. 架构复杂度
• 接入层:支持直播产品线20+
• 业务架构:2000+服务
• 存储架构:10+不同类型存储
• 物理架构:异地多机房
• 外部依赖:合作业务上下游50+
8. 业务&组织复杂性:领域驱动
•
•
领域划分
服务分级
多人场景
领域1
业务
服务&
能力
领域2
服务&
能力
服务&
能力
直播业务
增值
营收
PK
连麦
KTV
服务&
能力
服务&能
力
营收
社区
数据智
能
.....
互动
开播
打赏
服务&
能力
游戏内
容生态
分发
活动
钱包支付
支付
一级服务
元数据
.....
清结算
二级服务
三级服务
9. 复杂系统基建-服务治理
服务定义
开发测试
发布变更
多环境治理平台
服务准入授权
运维治理
事件平台
服务管理、分级 Mock平台 服务发布 通用流量平台
API管理 流量复制 容量治理 服务容量分析
服务注册与发现 仿真测试
限流、熔断、降级
容灾演练
混沌演练
10. • 直播业务&架构复杂性
• 典型场景的高并发解决方案
• 核心链路的高可用保障方案
• 大型直播活动重保经验分享
11. 直播的高并发典型场景
用户 分发 房间
亿级日活/千万在线 千万QPS 百万在播
用户链路是直播业务中的基础
服务,包括用户信息、粉丝、
黑名单、会员等,具有海量用
户上/下线、实时互动等极高
的并发场景和海量的用户数据 直播业务中用户能否看到直播
间,主要依赖直播间的分发能
力,包括为抖火西头的客户端
用户推荐直播间;为抖火西头
的业务系统、推荐系统和直播
系统提供按场景过滤的直播
间,共涉及310+场景
房间作为整个直播业务的载
体,承载各种直播功能——开
播、看播、进房、评论、连
麦、送礼、弹幕、购物等,共
涉及200+场景
消息
亿级推送
直播业务中非常关键的环节是
直播间的实时互动,包括直播
间的评论、弹幕、榜单、打
赏、抢红包、连麦、PK、商品
上架等,直播消息系统承担了
直播间内几乎所有互动事件的
下发
12. 直播的高并发解决方案-用户
• 亿级QPS
• 亿级用户
• 用户属性300+
13. 直播的高并发解决方案-用户
Set化 / Sidecar -> 亿级QPS
14. 直播的高并发解决方案-房间
• 千万级读并发
• 数据实时变更:100ms
• TB级热数据
• 高热直播间
15. 直播的高并发解决方案-房间
解决方案:
• 自建/多级缓存
• 异化索引结构&查询
• 整合多类异构缓存
的整体方案
16. 直播的高并发解决方案-消息
连麦、PK、K歌....
消息控速
消息打散
送礼、红包、福袋....
互动生产方
进房、评论、弹幕....
消息过滤
消息回源
优先级
......
亿级消息毫秒级延迟推送?
短链
......
长链
互动接收方
17. 直播的高并发解决方案-消息
解决方案:
• 自研高可靠消息内
存缓存(多活)
• 消息分级/批量推
送
• 房间维度分片(高
热直播间&小直播
间针对性策略)
18. • 直播业务&架构复杂性
• 典型场景的高并发解决方案
• 核心链路的高可用保障方案
• 大型直播活动重保经验分享
19. 核心链路的高可用保障方案-架构
P2
P0
P3
Pn
P1
无限集 -〉有限集
核心链路
房间
用户
分发 消息
打赏 进房
其他业务
方案:隔离&固化&兜底
20. 直播的核心链路
21. 核心链路的高可用保障方案-打赏
核心链路-打赏
• 主链路拆分-隔离
• 服务编排-流程固化
22. 核心链路的高可用保障方案-分发
• 千万QPS
• 内容多时延低
• SLA要求高
23. 核心链路的高可用保障方案-分发
兜底级别 兜底策略
一级兜底 文件兜底(白名单直播间)
二级兜底 文件兜底(高热直播间)
接入层(TLB) 一级:文件兜底
API层 二级:文件兜底
房间召回
三级兜底 内存兜底(个性直播间)
四级兜底 存储异构兜底
(Redis+ABase)
三级:内存策略
房间过滤
正常流程
存储层
四级:存储异构
Redis+Abase
自动降级
24. 核心链路的高可用保障方案-sre
MTTR
MTBF
MTBF
故障预防 故障感知 故障定位 故障止损 复盘改进
架构设计 立体监控 事件中心 容灾切换 故障复盘
舆情感知 根因分析 弹性扩容 改进验收
链路追踪 服务降级 混沌工程
核心指标
• 故障数:P2+=0 • SLA:99.99% 容量规划
• 时效:1-5-10 变更管控
风险巡检
问题避免
数据恢复
应急响应
加固提升
25. 核心链路的高可用保障方案-AIOps
感知
历史事件+实时监控
① 召回率
② 准确率
③ 实效性
AIOps
决策
执行
自动执行+优化建议
① 执行效率
② 零副作用
关联分析+异常检测
① 定位效率
② 性能开销
26. 直播高可用的整体保障方案
27. • 直播业务&架构复杂性
• 典型场景的高并发解决方案
• 核心链路的高可用保障方案
• 大型直播活动重保经验分享
28. 大型活动保障方案
- 流量控制
- 扩容
容量
剧本
容量
- 数据加载
- 参数调整
- 环境检查
- 压测 - 限流配置 - 监控大盘 - 自动扩容 - 彩排验收
- 容灾预案(自愈) - 变更封禁
- 服务降级 - 安排值班
- 数据恢复 - 办公预案
稳定性
重保
预案
管控
面向失败的设计,魔鬼在细节里!
29. 大型活动保障方案-弹性资源
•
发展过程:
1天内腾挪百万核
手动扩缩容 -> 半自动扩缩容 -> 自动弹性扩缩容
•
•
资源
出让/恢复
主方案:在线弹性伸缩
① 100%云原生
② 动态策略,弹性伸缩
辅方案:离线快速出让
自动
扩容/缩容
资源
交付/退回
自动策略
弹性调整
集群自动
负载均衡
30. 大型活动保障方案-压测
数据构造/隔离
压
测
平
台
流量回放
发压工具
压测环境
压测结果分析
压
测
场景压测
优化
全链路压测
线上真实流量调度
优化
31. 大型活动保障方案-自愈
自动
感知
高并发系统+现场直播,没有足够时间人工处理
AIOps
自动
恢复
自动
决策
32. 回顾
•
宏观:业务/组织/架构做分析
—>领域划分,服务分级,服务治理的基建
• 高并发场景
—>Set化,多级缓存,针对性优化
• 高可用场景
—>隔离固化,兜底,预防/感知/定位/止损
33.
34.