全民K歌歌房后台架构与优化
2020-02-27 3005浏览
- 1.┓ 全民K歌歌房后台架构与优化 腾讯音乐社区产品部 郑飞
- 2.2013年加入腾讯QQ音乐团队 ,全民K歌后台高级工程师,从零开 始搭建全民K歌多个后台服务,主导 了全民K歌直播后台的架构设计,目 前负责全民K歌直播、歌房以及大数 据分析的构建和优化。 个人介绍
- 3.项目 介绍 在线 合唱 安全 运营 后台 架构 内容大纲
- 4.全民K歌歌房项目是将线下的KTV的 体验搬到线上,让用户可以在不用 购买额外设备的情况下,随时随地 体验K歌的乐趣。除了传统的独唱的 玩法外,我们首创推出在线实时合 唱的玩法,在技术上,我们不断打 磨歌房的唱歌体验,并搭建了一套 安全、稳定的在线歌房服务。 项目介绍
- 5.歌房功能 视频 权限管理 禁言 大喇叭 聊天 美颜 合唱 录制 排麦 回看 排行榜 小喇叭 鉴黄 音频 送礼 推流 点歌 转码 观众人数
- 6.歌房项目简介 首创在线实时音视 频双人合唱 •覆盖手机、TV等多个终端,将线下KTV体验搬到线上 领先的唱K体验 •高品质伴奏、48K采样率、64K以上码率、多种音效 •实现人声/伴奏/歌词的高精度同步 •智能地语音席、唱歌音量调整 高安全性、高稳定 性的歌房服务 •完善、多维度的监控平台 •稳定、容错容灾能力强的后台服务
- 7.直播流如何对齐合并? 伴奏歌词如何同步? 用户的麦序如何保证? 在线合唱
- 8.合唱 网络端对端延迟造成无法实 时合唱 对网络要求严格、对网络抖 动敏感 TV版的系统音频延迟 人声/伴奏/歌词要求毫秒级 别的对齐 稳定、安全、容灾强的歌房 服务
- 9.
- 10.实时在线双人合唱方案对比 优点 • 合唱双方和后 台实现简单 缺点 • 对齐效果差 • 两路流会相 互等待,大 大增加卡顿 和延迟 优点 缺点 • 客户端实现简 单 • 对齐效果差 • 服务端要做 mix和对齐, 计算成本大 • 两路流会相互 等待,增加延 迟和卡顿 优点 • 实现简单 • 由于参与者根 据发起者的音 频来唱,不需 要做复杂对齐 逻辑,只需做 好人声和伴奏 的对齐 缺点 • 合唱参与端对 网络和机器性 能有一定的要 求
- 11.首创实时在线双人合唱 首创在损失领唱少量体验的情况,通过使用串行数据传递的方式实现双人合唱
- 12.歌词伴奏同步 IM消息同步伴奏信息和 播放时间 播放没有严格按照时间 轴,快进慢放策略导致 歌词偏差 每20秒同步一次信令, 广播当前音视频时间戳 和伴奏播放进度,通过 偏移量计算修正
- 13.
- 14.歌房麦序服务
- 15.麦序服务难点 • 麦序变更消息丢失怎么处理? • 上麦用户掉线如何处理? • 麦序消息和本地麦序列表不同应该相信哪个?
- 16.稳定的麦序服务 加入麦序列表 定时到期 麦序定时器 当前麦序 通知定时 申请排麦 心跳上报 排 麦 用 心跳 户 服务 在 线 检 心跳上报 测 麦序 服务 用户B 定时查询 用户A 上麦等待定时 歌曲演唱定时 麦序到 达 麦 序 1 麦 序 2 麦 序 3 麦 序 N … 消息通知 独 唱 合 唱 请求上麦 确认上 麦 选择合 唱者 播放伴 奏唱歌 合唱者 上麦 通知后台 切麦 IM消息实时通知 和定时驱动双重 保证麦序实时性 请求和确认两步 上麦,避免异常 上麦 心跳逻辑实现掉 线检测,快速切 换麦序 通过唯一递增序 号解决消息乱序 问题 后台对麦序增加 监控服务,异常 自动恢复机制
- 17.消息触达率怎么保证? 消息实时性如何提高? 后台可用性怎么保证? 后台架构
- 18.消息系统架构 • 可用性 1.存储写操作跨机房容灾 2.长轮询模块三地部署,就近接入 WNS ACC WNS Dispatch 3.大小房间隔离部署 IM Dispatch • 触达率 1.消息划分优先级,重要的消息优 长轮询服务 K歌业务后台 消息共享内存缓存 消息写服务 消息限流策略 消息合并写策略 写入消息seq列表 普通消息列表 存储 信令消息列表 存储 礼物消息列表 存储 消息同步服务 增量同步 消息读服务 拉取消息 大喇叭消息列表 存储 C2C消息列表 存储 先下发 2.消息通过seq拉取,确保消息的 触达率 • 监控 1.长轮询SEQ连续性监控消息丢失 率 2.消息轮询读取延迟监控(超过5s 上报失败)
- 19.歌房后台架构图 KSIM AV SDK 统计 H5 接入层 监控 日志 JS IM AVSDK CDN WNS接入层 礼物 逻辑层 JS IM 排麦 合唱 房间 集群 认证资料 房间 管理 观众 场次 消息 集群 房间 消息 房间号 歌房push 大喇叭 推送 观看历史 消息 频控 KSIM 权限 安全 配置 数据层 KV 存储 Mysql 存储 Redis 存储 大列表 存储 腾讯云 (AVSDK 后台)
- 20.歌房后台容灾和故障处理 主播类型 bitmap 房间号 分配 动态 权限服务 排行榜 歌房Portal页 歌房push 房间管理 服务 同步中心 观众列表 歌房流 水 观众流 水 个人主页 场次服务 安全审核平台 观看历史 点歌服务 排麦服务 礼物服务 hippo 礼物消 费流水 消息服务 大喇叭消息 服务 消息频控 安全打击 IM SDK后台 • 柔性处理 高峰期c端歌房发起数量控 制,码率控制 屏蔽掉部分观看入口 • 容灾 核心数据Top1万个房间信息 cache在内存中 多队列流水,避免堵塞 • 立体化监控 上下行容量监控 流水拥堵监控 哈勃、模调、monitor监控 • 灰度发布 按照积分、尾号、主播类型 进行灰度放量
- 21.1. 直播流旁路推流,可以实时查 看歌房的情况 2. 对直播流进行截图,按图片的 敏感度打分提交人工审核 3. 对上麦者进行实名认证 4. 对问题上麦用户进行警告,随 时切断直播信号,严重者进行 封号 安全监控
- 22.目前歌房功能在外网已稳定 运行1年左右,口碑良好。 全民K歌DAU 6200万左右 注册用户数7亿+ 欢迎加入我们! 运营数据
- 23.END 感谢您的聆听. -郑飞