腾讯 黄斯亮 - 全民K歌从零到千万在线后台服务的演进之路与黑产对抗

帖梓柔

2017/12/18 发布于 技术 分类

随着业务规模的快速增长,现有的系统架构在负载能力,处理性能,以及成本上逐渐无法适应发展的需求。系统逐渐变得臃肿,导致扩容,缩容效率低下;随着逻辑的不断叠加,处理路径变长,加上耦合严重,导致性能下降,可靠性降低;逻辑耦合的日益严重,也使得冗余逻辑不断增加,硬件成本与变更的时间成本也随之增加。另外,伴随业务扩张与业务之间的合并,导致了越来越多的异构平台和异构数据,如何提升这些异构系统进行改造与升级,提升运作效率,降低成本,变成架构师面临的难题。 对于社交类型的产品,在各种各样利益的驱使下,容易滋生各式各样的黑色产业,这些黑色产业,利用文字,图片,音视频内容,偷取流量,传播有害内容,对平台健康发展带来了严重的隐患,如何利用技术手段,在准确识别有害账号与有害内容的同时,不影响正常用户使用产品,越来越成为业务架构的挑战。 本专题将重点分享与探讨如何在系统架构之初,充分考虑后续扩展能力,如何对线上系统做升级改造,并且实现平滑切换,以及业务安全架构中,如何更快,更准与黑产对抗等问题,只有架构层面的不断自我完善与进化,才能更好的支撑业务长期的高速健康发展。

文字内容
1. 全民K歌从零到千万在线后台服 务演进与黑产对抗之路 黄斯亮 全民K歌技术总监
2. 黄斯亮 全民K歌技术总监 2008年加入腾讯,有近10年的互联网产品研发经验,主要从 事后台架构,海量服务,业务安全等领域工作,曾担任QQ音 乐,Qzone音乐盒,SOSO音乐等多个千万在线产品的后台技 术负责人,现任全民K歌技术总监,主管后台研发与业务安全 团队。
3. •  唱与听的盛宴:更好的流媒体服务 •  社交的矛与盾:多账号与关系链的融合与隐私保护 •  主播,土豪与观众的狂欢:直播系统架构的有损设计 •  有效是王道:选择最合适的容灾方案 •  千里之堤,溃于蚁穴:无处不在,却虚无缥缈的业务安全体系
4. 竞速调度与动态打分 •  竞速文件多大合适? 直通车调度中心 用户上传 •  竞速时机? •  是否有更好方案? 1.传入用户出口IP 竞速接口 2.根据用户Ip返 回最佳调度节点 IP(省份/运营商) 源站/统一存储 回源 DC 3.返回多个CDN域名 回源 竞速文件100k->10k 调整前竞速带宽约20G,调整后 约4G,节省约16G APP 4.测速 CDN1 CDN2 4.测速 CDN3 OC 5.根据测速结果选择 最快节点,请求数据
5. 其他 TCP传输加 速 自适应码 率 Ip直出 去重302跳 转 动态调整 首片大小 H265 热点数据 预推
6. •  唱与听的盛宴:更好的流媒体服务 •  社交的矛与盾:多账号与关系链的融合与隐私保护 •  主播,土豪与观众的狂欢:直播系统架构的有损设计 •  有效是王道:选择最合适的容灾方案 •  千里之堤,溃于蚁穴:无处不在,却虚无缥缈的业务安全体系
7. 多关系链互通 授权 内部账号映 射 映射关系绑 定,解绑
8. 权限服务以及查询优化 •  不想看哪些人?不想被哪些人看? 上层业务模块 •  权限查询服务:8w+ qps •  负载降低20%-50% 权限查 询服务 中间数据 Cache •  时延降低60% •  后端存储qps显著降低 各类关系链存储 关系链 正反黑名单 圈子 外部平台 站内关注
9. •  唱与听的盛宴:更好的流媒体服务 •  社交的矛与盾:多账号与关系链的融合与隐私保护 •  主播,土豪与观众的狂欢:直播系统架构的有损设计 •  有效是王道:选择最合适的容灾方案 •  千里之堤,溃于蚁穴:无处不在,却虚无缥缈的业务安全体系
10. 直播消息系统设计——思考与决策 •  消息获取是推还是拉? •  所有房间同等对待? •  所有消息都需要实时? •  需要保证所有消息不丢? •  如何更好的监控?
11. 直播消息系统设计——高效,有损 •  长轮询 •  消息低延迟 •  大小房间隔离 •  尽量不丢消息 •  消息路由监控 •  读写容灾 ᕣᒒ! 私有协议 WEB! ӱ‫!ݣݸۓ‬ 写入 ٟ๐‫!ۓ‬ ള‫!੶ف‬ 长轮询 ᳩ᫪ᧃSVR! 拉取 ᧛๐‫ۓ‬+Cache! 拉取 写入 ၾ௳ᴚ‫!ؙਂڜ‬
12. 长轮询性能提升 •  采用双buffer的方式做到无锁读操作,降低CPU占用 •  64位优化,进一步降低cpu消耗 •  采用tcmalloc优化内存分配
13. 隔离设计 ಄ᳵ! ၾ௳! •  按人数区分大小房间 •  大小房间分Set部署,不同Set用不同命令字路由 •  头部主播默认大房间,普通C端直播默认小房间 •  根据房间人数动态调度不同Set •  按照消息类型区分不同队列与存 储
14. 消息Cache य़಄ᳵ! ӤᴴX๵! ᖨਂNs! ੜ಄ᳵ! ӤᴴY๵! ᖨਂNs!
15. 消息读容灾 上海IDC 接入 深圳IDC 接入 长轮询 +Cache 消息读代理 长轮询 +Cache 消息读代理 轮询增量拉取最新消息 备份轮询增量拉取最新消息 消息 存储 天津IDC 接入 长轮询 +Cache 消息读代理
16. 消息写容灾 •  消息按类型区分队列与 存储 •  每类消息区分主备 •  按消息重要程度选择2 机房或者多机房 上海IDC 接入 房间调度服务 A机房消息 写服务 一致性hash B机房消息 写服务 深圳IDC 消息存储 (主) 消息存储 (备) 接入 天津IDC 接入
17. 观众列表存储 •  100万+同时在线 •  access无状态平行扩容 •  每个set一主多备,跨机房容灾 Set部署 数据结构
18. 观众列表存储优化 在线人数统计不准确,2小时误差10倍! 观众心跳反向表 Room ID-> 观众心跳正向表 UserID->
19. 观众列表服务 •  多线程读,单线程写LRU cache热点数据 •  master/slave模型,binlog同步 •  router实现路由变更通知和主从选举切换
20. •  唱与听的盛宴:更好的流媒体服务 •  社交的矛与盾:多账号与关系链的融合与隐私保护 •  主播,土豪与观众的狂欢:直播系统架构的有损设计 •  有效是王道:选择最合适的容灾方案 •  千里之堤,溃于蚁穴:无处不在,却虚无缥缈的业务安全体系
21. 同步中心 主IDC 备IDC 接入 接入 读请求 写请求 读写服务 跨IDC写 只读 写入 存储代理 写入 流水文件 同步 agent 同步中心 读请求 只读服务 公网 专线 存储代理 Redo服务 主存储 备存储 只读
22. 用户作品上传 多地 调度灵 接入 活 多地 多机房 上传 部署 转码 多码率 分发 支持 多码 率互 备 兼顾成 本
23. •  唱与听的盛宴:更好的流媒体服务 •  社交的矛与盾:多账号与关系链的融合与隐私保护 •  主播,土豪与观众的狂欢:直播系统架构的有损设计 •  有效是王道:选择最合适的容灾方案 •  千里之堤,溃于蚁穴:无处不在,却虚无缥缈的业务安全体系
24. 业务安全面临的挑战
25. 业务安全框架 •  富媒体内容识别:文本,图片,音频, 视频 •  账号健康:信用度 •  策略管理中心:安全接入与打击控制 •  运营审核平台
26. 文本安全:拼音+相似度 •  拼音策略 •  相似度策略 分词 计算词频 向量化 计算余玄
27. 文本安全:贝叶斯预测 文本 喜欢 唱歌 私信 聊天 找我 私信 元 萬 加 私信 园 萬 私信 判定 正常 正常 恶意 ? 特点: •  支持针对具体业务的训练库 •  算法不仅支持文本文类,还可以用于 其他分类场景 •  可以结合业务加入其他纬度数据 请求 •  10园20萬 私信我 分词 •  园 •  萬 •  私信 计算 •  计算系统 •  贝叶斯训 练库 概率输 出 •  恶意概率: 0.00102 •  正常概率: 0.00076
28. 图片安全 在线福利 www. ty517. com 福剩来袭 本现场啪啪啪卜 想知道诽情请添加微 n1799 内容识别 •  色情打分 •  性感打分 •  OCR •  相似图片搜索算法: 1.  aHash 2.  phash 3.  dHash
29. 音频安全 音频指纹 语音特征 音频语言 音频关键词