全民K歌直播后台架构
2020-02-27 1293浏览
- 1.┓ 全民k歌直播后台架构与优化 --腾讯音乐chrisluo(罗静)
- 2.• 2014年加入腾讯 • 全民k歌后台开发leader • k歌基础功能构建和优化 • k歌直播服务构建和优化 • k歌业务安全服务建设 个人介绍
- 3.架构 总览 系统 设计 直播 安全 服务 优化 内容大纲
- 4.• 全民k歌简介 • 架构实现 • 接入和存储 • 支撑体系 Ⅰ架构概览
- 5.全民k歌-唱
- 6.全民k歌-看
- 7.直播架构图 IM SDK AV SDK 统计 接入层 监控 日志 逻辑层 安全 配置 IM JS SDK AVSDK 存储层 H 5 CDN web接入 WNS接入 权限 消息 集群 房间 消息 观众 Portal 直播 push 大喇叭 推送 观看 历史 消息 频控 IMSDK 回调 礼物 房间 集群 连麦 认证 资料 歌单 排麦 场次 KV IM JS SDK 房间 管理 DB B+tree Tlist 腾讯云 AVSDK IMSDK
- 8.音视频服务架构 SSO 信息查询 info 房间逻辑 logic 分发调度 dispatch 流控中心 center 负载收集 control 负载管理 status 人数上报 主播视频状态同步 质量上报 调控下发 主播&连 麦用户 AVSDK IMSDK SSO 音视频上行 UDP PROXY(OC) ACCESS DC 音视频下行 UDP ... PROXY(OC) 就近接入 低成本带宽 低时延观看 观众 AVSDK IMSDK UDT UDP 截图鉴黄 录制 旁路推流 HLS CDN 观众H5
- 9.消息服务架构 WEB SDK IM SDK 业务后台 REST API REST API 私有协议 SSO 长轮询 产品形态配置 消息长轮询 拉取 订阅 发布 号码系统 Sdkappid 群列表 建群配额 消息分发 逻辑层 放号 聚合 扩散 同步 建群 群管理 消息SEQ 序列号 MsgCenter 及下游 业 务 后 台 消息频控 权限控制 安全串联 在 线 p u s h
- 10.• 观众列表实现 • 消息实时性 • 消息端到端监控 • 超时的处理方式 • 分布式事务处理 Ⅱ系统设计
- 11.业务场景 主播直播间有30万在线观众,需要按照加入房间顺序展示,并可以分页 拉取更多观众,需要找出观众中哪些是我的好友 张靓颖有300万粉丝,需要按时间关注的时间从新到老顺序展示,并可以 拉指定范围的粉丝,以及判断我的好友中哪些也关注了张靓颖 追光者这首歌有1400万人唱过,好友可以多达7000人,如何找出唱过这 首歌的好友,并获取他们唱歌打分的top10
- 12.观众列表
- 13.观众列表存储设计 l支持数据变长,几百到几千 万不等 l可以快速判读一批数据是否 存在列表中 l除了索引,可以支持存储小 数据 l支持分页拉取和范围读取 l性能足够好(百万级) l便于扩展、方便落地
- 14.观众列表存储设计 node header key-ptr 0 key leaf header key-ptr 1 key-ptr 2 …… blockptr item 0 …… item n free space data n key key-ptr m offset …… size btree btree header node leaf …… node 单个文件 leaf …… data 0
- 15.观众列表服务设计 lbtree存入文件或者共享内存 业务svr 接入层 l文件划分为多个定长的block, bitmap管理空闲块 route table l每个block保存一个node或leaf l单写多读线程模型,LRU cache 热点数据 master heart beat router lmaster/slave模型,binlog同步 heart beat lrouter实现路由变更通知和主从 选举切换 heart beat slave slave
- 16.消息实时性保证 业务要求: l礼物消息的实时性 l榜单消息的实时性 l观众和主播及时互动 解决方案: lpush or pull l榜单变化及时push l定时或详情pull
- 17.消息优化 延迟 到达率 1、推拉结合 1、大喇叭等重要消息优 2、增加在线用户cache, 先发送给本房间 秒级推送大喇叭消息 2、其余房间依次广播 监控 1、消息触达统计与监控 2、消息延迟监控 3、重要消息染色日志 4、重要消息延迟告警 3、使用广播大群 60% [0s,0.5s) 40% [0.5s,1s) 20% [1s,1.5s) 0% [1.5s,2s) Android IOS [2s,2.5s)
- 18.服务质量:消息监控 客户端时间轴 送礼时间t 服务端时间轴 送礼成功时间 t1 上报tdw 收到消息时间 t2 短信/模调/tdw
- 19.礼物道具服务
- 20.处理超时 问题: client server Pay(orderid, amount) l超时导致结果不确定 Total+=amount l重试带来的数据错乱 Fail/timeout l如何防止数据回放 解决方案: l请求方带上唯一id l调用接口的幂等性设计 l校验数据的有效性 Pay(orderid, amount) retry success Total+=amount
- 21.分布式事务处理 两阶段提交: l多次网络交互 l同步阻塞、性能差 参与者 l单点故障、数据不一致 准备 准备 成功/失败 成功/失败 提交/回滚 协调者 确认 l实现复杂 提交/回滚 参与者 确认 BASE模型: l引入异步消息转换成多个本地事 务 l保证接口的幂等性避免重复消费 l通过重试达到数据的最终一致性 本地事务A 流水 消息队列 本地事务B 本地事务N
- 22.分布式事务处理 礼物排行 消费server 积分等级 财富等级 送礼流水 hippo 消息push 持久化svr 流水存储 Fail数据 Fail 重做
- 23.• 接入优化 • 成本优化 • 服务容灾 Ⅲ服务优化
- 24.接入优化 接入点 接入点 接入调度 大盘调度 测速分析 l 旧的调度基于用户接入的区 域和运营商,就近同运营商 的原则,粒度过粗 测速 差质量用户调度 测速结果 l 以IPC为维度进行聚合,依 DB 据延时和丢包情况确定差质 量用户,并给建议接入点 l 基于最近7天的测速结果计 业务后台 直播后台 算各个IPC最优接入点,综 合考虑各个接入点容量状态
- 25.成本优化 码率 录制 推流 2b和2c使用不同的 2c直播使用定时截图方 2c直播不开启H5页面 码率、节省带宽, 式替换录制视频,节省 直播,节省转码推流 H265的引入 录制机器、存储 机器
- 26.直播后台容灾 Ø 直播中断 房间管理 服务 排行榜 直播push 直播Portal Ø 柔性处理 排行 个人主页 场次服务 安全审核 高峰期c端直播发起数量控制,码 率控制 屏蔽掉部分观看入口 权限服务 主播类型 房间号分配 直播流水 观众列表 歌单服务 手机没电、crash,主播在3分钟 内可以恢复原来的直播 动态 观众流水 消息服务 观看历史 消息频控 安全打击 Ø 容灾 核心数据Top10000房间信息 cache在内存中 多队列流水,避免堵塞 Ø 立体化监控 上下行容量监控、流水拥堵监控 连麦服务 礼物服务 消费流水 大喇叭消息 IM SDK后台 Ø 灰度发布 按照积分、尾号、主播类型进行 灰度放量
- 27.• 主播内容监控 • 文字过滤-关键词 • 文字过滤-相似度 • 文字过滤-贝叶斯 • 防刷-频率控制 • 防刷-设备IP画像 Ⅳ直播安全
- 28.直播监控 1. 直播流旁路推流,可以实 时查看直播情况 2. 对直播流进行截图,按图 片的敏感度打分提交人工 审核 3. 对主播进行实名认证 4. 对问题主播进行警告,随 时切断直播信号,严重者 进行封号
- 29.直播安全-关键词 应用策略: Ø 组合关键词 Ø 关键词划分等级 Ø 过滤转义,把全角、异体 转为标准内容再进行匹配 Ø 小语种识别,对含有高危 小语种的内容单独处置 Ø 中文转拼音,对高危内容 进行同音识别
- 30.直播安全-相似度 文本的基本元素是词汇,可以 进行分词后提取特征分析 比较算法: p Jaccard相似度 p Simhash-汉明距离 p 余弦相似度
- 31.直播安全-贝叶斯 文本 分类 喜欢 唱歌 私信 正常 聊天 找我 私信 正常 元 萬 加 私信 恶意 10园20萬私信 ? 应用场景: Ø Ø Ø 支持针对具体业务的训练库 算法不仅支持文本文类,还可以 用于其他分类场景 可以结合业务加入其他纬度数据 1.发送评论 10园20萬私信我 2.分词 园 萬 私信 恶意概率 拼音分词 正常概率 拼音分词 xi da da 0.00102 xi da da 0.00076 3.计算分析 规则计算 贝叶斯数据
- 32.直播安全-贝叶斯 数据层 大v评论 热门作品 采集层 存储层 签约主播 采集数据原则: 打击数据 数据采集 DB 运营审核 KV 贝叶斯训练 p 正常用户和恶意用户兼顾 p 及时添加新样本 实时打击系统
- 33.频控策略 实现方案: Ø 1、结合账号特征和用 户画像,精细化管理 Ø 2、实时监控,报表输 出,动态调整 Ø 3、命中频控用户需要 进行短信或图片码验证 Ø 4、流水查询,可回溯 分析
- 34.设备IP分析 IP画像: Ø 基于海量用户分析用户行为,提供ip信用评级 Ø Ip信息分类:代理/vpn,idc服务器、网关、腾讯用 户IP、运营商、局域网 Ø 应用场景:恶意爬虫、恶意注册/登录、机器人识别、 恶意刷单、刷量 设备画像: Ø 后台计算并确认移动终端唯一身份ID Ø 基于海量用户从设备活跃度、模拟设备、新增设备、 常用设备、黑产设备对移动设备进行安全画像 Ø 基于画像实时判断移动设备风险等级
- 35.