Feed系统结构浅析.pdf

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Feed系统结构浅析 人人网 张铁安 Feed系统的定位及功能描述 • 是SNS的核心功能 • 是SNS网站中用户信息的扩散传播通道 • 需要很高的实时性 • 与各业务系统联系紧密(input output) • 高效、稳定、抗压力强 • 系统的复杂度高 面临的挑战 • 用户产生的数据量巨大 – 假定按平均1000条/秒计算,用户每天产生近亿 条数据 • Feed的扩散范围大(从几个人到几百万 人) • 合并、去重、排序规则复杂,要求实时, 响应快速 • 用户请求量大 • 根据各业务的需要,提供个性化的筛选策 略 关于Push Or Pull 的思考 • 获取数据的两种方式 – 推模式 – 拉模式 • 结论 – 从查询的效率考虑,推模式更合适 Feed System构成 • Dispatch • NewsFeed Index Cache • User interaction feedback • Sorting algorithm Friend Rank • MiniFeed Index Cache • FeedContent Cache • NewsFeed Index Persistence (index db) • Rendering engine (data + template) 系统结构图 技术细节 • Feed的分发系统 • Feed的Cache系统 – Index Cache – Content Cache – 数据压缩 • Index的持久化存储系统 • 页面显示用的渲染引擎 • 基于内容及用户行为反馈的排序算法 (略) 关于Open Source • Feed系统中使用的OpenSource项目 – ICE (通信框架) – Mysql (DB) – Memcache + libmemcached (Content 内存Cache ) – Google Protobuf (对象的序列化及反序列化) – Quicklz (二进制数据压缩) – Boost multi-index container (多索引结构) – Tokyo Tyrant (key-value存储引擎) – Google Ctemplate (数据的模板渲染引擎) – Nginx + FastCgi (WebServer ) Feed的分发系统 • 数据的拆分 – Index + content • 收消息用户列表的Cache策略 – LRU Update Notify • 异步线程池 – 合理设置线程个数解决脉冲式请求 Feed Cache的内存优化 • FlyWeight的设计思想 基于FlyWeight思想的Cache结构 • FeedContentCache Index Cache服务间的 FlyWeight Index服务内步的FlyWeight结构 • FeedNews服务内部的FlyWeight Index Cache的多条件查询 • 利用multi_index支持类似数据库的查寻方 式,对同一个数据集,可以按不同的维度 建立索引,方便支持不同条件的查询,同 时对于排序结果,可以做到实时的更新 Boost Multi Index Container 关于内存的压缩存储 • 各种压缩方法 – zlib – lzo – fastlz – lzf – quicklz • 对象序列化及压缩 – Protobuf + quicklz Memcache McProxy高扩展性的内存Cache方案 • 我们对内存Cache的要求 – 支持高并发 – 在内存容量不断增加的情况下,查询性能不会 有大的降低 – 易于扩容及高可用性(一致性哈希) – 统一的配置管理,使用简单

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档