《【百度韩学明】百度App百亿级互动系统技术实践.pdf》由会员分享,可在线阅读,更多相关《【百度韩学明】百度App百亿级互动系统技术实践.pdf(33页珍藏版)》请在三个皮匠报告上搜索。
1、百度百度AppApp百亿级互动系统技术实践百亿级互动系统技术实践韩学明百度 资深工程师PART 1百度百度AppApp的互动系统介绍的互动系统介绍PART 3未来展望未来展望PART 2互动系统架构的演进互动系统架构的演进PART 4整体回顾整体回顾 +Q&AQ&A1.1.1 1 产品形态产品形态PARTPART 1 1 百度百度AppApp互动系统介绍互动系统介绍技术特点技术特点1.21.21.11.1 百度百度AppApp-产品形态产品形态搜索推荐弹幕列表点赞评论收藏分享热评外露弹幕发表 百度App:百度App是用户可以在手机上进行“搜索+资讯”的客户端,DAU 2亿+。互动:百度App用
2、户可在资讯内容下进行关注、点赞、收藏、评论、弹幕等各种功能,这些用户参与态度表达的功能集统称互动功能。1.21.2 百度百度AppApp互动系统的技术难点互动系统的技术难点百度百度AppApp好看视频好看视频矩阵矩阵AppApp通用能力通用能力互动服务评论评论评价评价弹幕弹幕关注关注点赞点赞表态表态收藏收藏投票投票分享分享一一.互动为百度互动为百度AppApp、好看、好看APPAPP等各种矩阵类等各种矩阵类产品提供通用服务能力,支撑了百度移动生产品提供通用服务能力,支撑了百度移动生态互动生态。态互动生态。二二.建设互动系统的技术难点和挑战建设互动系统的技术难点和挑战产品多 支持百度内产品线超2
3、0+覆盖“搜索+推荐”两大核心应用场景流量高 峰值QPS 100万+天级数据量级 50亿+性能好 接口性能平响100ms,99分位200ms 互动数据分发,秒级延迟2.2.1 1 初始期:基础互动功能设计和架构初始期:基础互动功能设计和架构PARTPART 2 2 互动系统架构的演进互动系统架构的演进演进期:功能复杂化演进期:功能复杂化 +一级服务稳定性构建一级服务稳定性构建2.22.22.32.3 通用化:通用化演进通用化:通用化演进 +数据赋能数据赋能2.12.1 初始期:基础互动功能设计和架构初始期:基础互动功能设计和架构背景:百度背景:百度App App FEEDFEED文章文章/视频
4、需要创建评论、关注、点赞等系统满足用户视频需要创建评论、关注、点赞等系统满足用户交流诉求,需要交流诉求,需要快速快速上线。上线。客户端流量接入外网api层内网服务层数据存储客户端/H5流量客户端协议内网服务mysql、redis2.12.1 初始期:百度初始期:百度AppApp初步建立互动系统初步建立互动系统需求分析+技术选型需求分析:评论:构建评论发布+评论列表的“写+读”系统;点赞/关注/收藏:构建人人/物的关系链;技术选型:尽量在当前架构下进行功能开发扩展,关注迭代速度;当前架构2.12.1 初始期:互动系统架构初始期:互动系统架构-评论的建设评论的建设统一流量接入BFE推荐搜索评论内网
5、流量接入用户文章评论DBREDIS外网API层内网服务层用户在百度App参加评论发表、阅读评论、点赞评论发表评论评论列表评论点赞评论服务评论发布评论审核列表排序评论计数存储设计评论索引表评论索引表主题id评论id评论详情表评论详情表评论id内容评论主题信息评论主题信息主题idsource_info评论排序(单维度)2.12.1 初始期架构的问题暴露(一):功能方面初始期架构的问题暴露(一):功能方面评论发布入库评论点赞点赞倒序评论列表问题一问题二点赞排序智能排序时间排序作者/发评人文章评论优化排序规则需要从点赞排序优化为智能排序+时间最新排序,原有DB排序不满足诉求。阅读评论评论排序浏览者个性
6、化排序小流量优化迭代排序需要根据浏览者的个人兴趣做个性化排序。并且需要做小流量实验满足产品迭代优化评论列表2.12.1 初始期架构的问题暴露(二):性能方面初始期架构的问题暴露(二):性能方面评论列表排序结果用户属性渲染输出问题一问题二评论列表依赖的下游服务较多,个别服务耗时较长,拖慢整体速度,用户体验不好关注点赞封禁管控广告.推荐详情页性能要求高,端到端性能响应时间离线+在线集合方式:离线计算评论粗排得分,支持多维度+小流量;在线排序引入多维度多因子个性化模型,优化评论排序过程。排序流程依赖管理模块评论发表评论阅读评论点赞评论举报行为流分布式队列离线排序模块计算存储redis zset在线排
7、序模块策略模型策略服务评论排序点赞倒序db排序/分页2.22.2 问题一:解决评论排序功能的多样化问题一:解决评论排序功能的多样化2.22.2 问题二:性能优化问题二:性能优化问题评论列表需要优化性能,满足详情页秒开,提升用户体验解决方案针对依赖进行管理,通过golang重构并行化获取结果,通过对依赖进行分级划分,建设弱依赖超时断开&一键摘除能力。列表处理流程评论列表请求依赖渲染输出2.22.2 问题二:性能优化问题二:性能优化2.22.2 问题三:稳定性保障问题三:稳定性保障问题 热点流量下系统稳定性保障;服务部署的稳定性保障;解决方案 识别热点,写-削峰填谷,读-热点缓存命中;多地域多机房
8、部署+故障一键切流+混沌工程注入演练;稳定性处理push热点2.22.2 问题三:稳定性保障问题三:稳定性保障2.22.2 问题三:升级一级服务问题三:升级一级服务“动作全览动作全览”全流程阶段全流程阶段抓手抓手动作动作程序设计程序设计 代码模块单一职责;服务依赖分级治理;热点流量高吞吐;合理拆分微服务(在线、离线);服务熔断、降级、补偿;写流量异步;读流量缓存命中;程序开发程序开发 代码质量;接口性能;CR、代码容错性、单测+P0 CASE;性能压测;程序上线程序上线 灰度分级发布;回滚止损流程;预览机-单机房单台-单机房-多机房单台-全机房,分级发布;发现问题可快速“倒序”止损;故障发现故
9、障发现 服务监控报警;用户反馈;日志监控报警、电话报警;UFO用户反馈直达;故障处理故障处理 快速止损;定位排查;容灾降级(写+读)、变更快速回滚;trace排查定位;例行化演练例行化演练 混沌工程;P0 CASE;混沌工程常态化;线上流量引流运行P0 CASE;一级服务要求:一级服务要求:SLASLA 99.995%+99.995%+服务多地域部署N+1冗余故障容灾降级服务治理依赖分级:一键摘除消息队列:削峰填谷多级缓存:优化吞吐2.22.2 问题三:部署升级问题三:部署升级 +机制建设满足一级服务要求机制建设满足一级服务要求2.32.3 通用化:通用化演进通用化:通用化演进 +数据赋能数据
10、赋能2.32.3 通用化:服务通用化建设背景通用化:服务通用化建设背景背景百度App矩阵LITE版/大字版好看贴吧.诉求一接入互动能力降低重复建设成本提升迭代效率互动通用能力诉求二打通百度App评论/关注等互动数据诉求三在搜索+推荐,用户互动行为后验,优先级提权方案服务上架app id标识服务鉴权数据隔离改造服务改造接口注册上架应用方接入个性化配置沙盒测试接入鉴权上线服务维护管理2.32.3 通用化:互动通用化服务架构演进思路通用化:互动通用化服务架构演进思路需求梳理现有功能通用功能个性化通用能力沉淀清晰业务边界接入业务独立实现架构改造在线功能抽象存储隔离升级离线统计能力输出服务上架通用功能地
11、图个性化配置分发应用接入2.32.3 通用化:互动通用化服务架构通用化:互动通用化服务架构2.32.3 通用化:互动数据赋能建设通用化:互动数据赋能建设互动数据应用:用户分层互动数据应用:用户分层互动数据赋能架构互动数据赋能架构用户分群分层分群分群分群数据源内部数据外部数据互动运营中台用户浏览存储层离线存储在线存储AFSUDWMYSQLDORIS执行数据理解模型建立数据训练效果评估模型层flinkspark资源热度评论热度用户分层应用层热度标签热点事件用户分层.PARTPART 3 3 未来展望未来展望 3.13.1 未来规划未来规划 在用户、作者、事件三个维度持续挖在用户、作者、事件三个维度
12、持续挖掘数据价值,赋能业务产品掘数据价值,赋能业务产品 创新:通过创新:通过“文心一言文心一言”赋能产品架构赋能产品架构用户数据文章数据行为数据数据赋能计算用户维度作者维度事件维度数据赋能应用PARTPART 4 4 整体回顾整体回顾 +Q&AQ&A整体回顾整体回顾1 1 互动系统介绍互动系统介绍2 2 互动系统架构演进互动系统架构演进3 3 未来展望未来展望百度百度AppApp互动,产品形态互动,产品形态&技术特点技术特点初始期初始期-设计初衷:快速迭代设计初衷:快速迭代初始期初始期-面临问题:功能迭代面临问题:功能迭代+性能性能+稳定性稳定性演进期演进期-问题解决:离线排序问题解决:离线排序+并发改造并发改造+稳定性加固稳定性加固+一级服务一级服务通用化通用化-思路:通用化改造思路:通用化改造+数据赋能数据赋能持续数据赋能持续数据赋能+文心一言赋能文心一言赋能个人联系方式个人联系方式 个人微信:技术沟通个人微信:技术沟通+简历投递简历投递谢谢 谢谢 观观 看看thanks