版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于社交关系的SmartFeed架构业务背景介绍产品技术背景介绍Smart Feed设计思路和技术架构 实践中的重难点总结关于musical.ly是一个短视频社交应用,视频的生 产和消费是驱动社区发展的主干功能用户的主要内容消费场景之一是关注栏目musical.ly的关注栏目是基于时间线的feed流业务背景介绍1.5亿用户1500万 DAU每日1200万短视频2017年2用户基数和内容生产数量已经达到一定规模提高内容消费即分发效率成为公司的核心目标之一产品技术背景介绍Smart Feed设计思路和技术架构实践中的重难点 总结业务背景介绍Feed流简介内容来源产品形态社交关系时间线兴趣瀑布流mu
2、sical.ly 关注栏目其他其他时间线产品的常见架构读扩散(纯拉)推拉结合写扩散(纯推)十万级千万级百万级注:纯推的方案还是推拉结合,另外个重要的因素是社交关系结构-即V的粉丝数量。最简单的推拉结合模型推拉结合改进:Vip发件箱数据存取问题:拉取时需要循环访问Vip的发件箱解决方案:把Vip用户的发件箱独立出来,把循环逻辑向底层推。效果:平均每个Vip用户的发件箱访问耗时从之前约2ms,降低到0.2ms推拉结合改进:异步拉取Vip数据问题:少量用户关注了数百个Vip用户,导致拉取Feed时出现超时解决方案:拉取Feed时,限制同步拉取Vip Feed的数量,新增异步拉取 的流程效果:线上接口
3、访问超时减少90%劣势:部分Vip的Feed是异步完成分发的,用户可能会错过一些精彩内容推拉结合改进:推-拉-推结合问题:异步拉取Vip数据导致的Vip Feed内容丢失解决方案:把 “推拉结合” 的方案进一步改进为 “推-拉-推结合”。定义关注超过500个Vip的用户为 “Vip Zealot”Vip发布内容后,向所有的“Vip Zealot”进行分发“Vip Zealot”拉取Feed时,不再拉取Vip的Outbox效果:解决Vip Feed内容丢失问题,同时不降低在线接口访问性能Vip用户的社交关系数据的演进接口需求:对于给定用户,返回其关注的所有Vip User实现:一开始,我们使用“
4、表分区、表复制”的方式实现新的问题:随着流量增加、数据量增,上述实现逐渐成为系统瓶颈。 最后在实现“Vip Zealot”时,对这部分数据做了冗余效果:99线从超过50ms,下降到约12ms纯时间线产品的不错过精彩内容:用户消费信息的顺序是固定的。存在错过精彩内容、感 兴趣的内容、强社交关系内容的情况。抑制消费兴趣:部分低质量的内容抑制了用户继续消费的兴趣。个性化单一:用户通过“关注好友”或者“订阅”和信息来源建立关系,满用户的个性化定制需求,但这种方式是一元的个性化。产品技术背景介绍Smart Feed设计思路和架构实践中的重难点 总结业务背景介绍时间线产品进Smart Feed优化优化空间
5、上次已读时间线当前时间上次访问时间时间线产品进 SmartFeed优化优化空间上次已读时间线当前时间本次 已读上次访问时间时间线产品进 SmartFeed优化优化空间更早已读时间线上次访问时间上次 已读优化空间当前时间SmartFeed的系统组成推拉SmartFeed分发流程Smart Feed系统和Feed系统分发流程上的区别事件源需要增加延迟,留出时间对视频进内容理解根据社交络的特点,增加了用户间的亲密度数据源对同一个用户存在多个Inbox,在分发阶段进打分,根据打分结果将数 据分发到不同的Inbox中(Inbox、Priority Inbox)分发过程增加Feed ID,由ID Gene
6、rator生成。保证顺序性、唯一性、稀 疏性。SmartFeed拉取流程Smart Feed系统和Feed系统拉取流程上的区别需要从当前用户的多个Inbox拉取数据数据合并后根据是否已被固化分成多个Segment从Vip Outbox中拉取Feed需要根据Segment的结果进在精排后,向用户展示的内容需要在Inbox中进固化,固化时需要重写Feed IDSmartFeed存储数据结构FeedSmart FeedUser IDItem TypeItem ID排序列Feed ID-排序列,固化时会批量重设Bottom-固化Segment信息Item Features-分发时冗余的Feed特征,包
7、括视频tag、cv label、 作者国家地区等信息Feed ID生成逻辑使用Redis Lua Script实现,每个用户用Hash数据结构维护状态目的是为了使生成的Feed ID是稀疏的,后期可以在任意两个ID之间插入内容TimestampTimestamp_Ms 5万1万上线前上线后全量更新周期每 日于2周扩容速度次 日于1周数据固化的实现Feed ID是排序。利用Feed ID生成的稀疏性,通过重新生成Feed ID,把固化的Feed放在剩余数据的前面。优 化 空 间排序 结 果本次拉取重排重新生成ID保持ID不变固化Vip Feed和普通Feed的合并和普通Feed的推拉结合方案类似
8、,Vip的数据会在拉取后异步的合并回用户的Inbox中。主要有两方的原因:Vip发件箱的访问相对耗时较多,回写之后下次访问时不需要重复拉取。业务上需要保证Vip的内容顺序稳定Vip数据回写Inbox之后,需要在逻辑上保证不要重复拉取Vip的内容Vip Feed和普通Feed的合并从Inbox拉取数据后,对数 据按是否固化,进 分段。已固化的数据段对应的VipFeed已经合并回Inbox。未固化段需要根据相邻区 间的边界,从Vip Outbox 中拉取Vip Feed。未读场景1: 所有 数据都未读未读场景2: 部分数 据已读已读已读场景3: 更复杂 的情况已读未读Vip Outbox的实现优化使用Redis ZSET实现,以Feed ID作为Score使用ZRANGEBYSCORE指令进查询,使用Redis Script减少络交互为每个Vip准备多个副本,让压更均匀的分担在每个分片上拉取Vip Feed内容耗时下降到:平均 6ms,99线 9ms;未读数量查询耗 时从4ms下降到2.36ms设计思路和技术架构 实践中的重难点总结业务背景介绍 产品技术背景介绍SmartFeed优化效果+4.9%UV消费时+21%SmartFeed技术指标拉取数量20020平均响应时间1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全监控系统在企业的应用案例
- 大陆区块链技术的应用与创新实践
- 人力资源部招聘与选拔策略解析
- 网络安全与隐私保护的技术研究
- 遗传资源利用与保护政策
- 中医药在体育健身中的运用
- 医院文化在医疗纠纷调解中的作用
- 心理健康教育在高校辅导员工作中的运用
- 文化办公空间物业管理模式探讨
- 工业0时代下的智能制造技术应用
- 线路板常识培训课件
- 水轮发电机组检修作业指导书资料
- 定压补水装置说明书
- 管致中信号与线性系统第5版答案
- 一汽大众汽车公司介绍
- 4.2《产生气体的变化》课件
- 《建筑工程项目管理》课程思政优秀案例
- 中国古代文化常识科举制度
- 护理管理学第二章管理理论和原理课件
- 超星通尔雅生命智能课后答案
- 篮球教案抢篮板球
评论
0/150
提交评论