首页 Feed系统结构浅析@人人网

Feed系统结构浅析@人人网

举报
开通vip

Feed系统结构浅析@人人网nullFeed系统结构浅析Feed系统结构浅析人人网 张铁安Feed系统的定位及功能描述Feed系统的定位及功能描述是SNS的核心功能 是SNS网站中用户信息的扩散传播通道 需要很高的实时性 与各业务系统联系紧密(input & output) 高效、稳定、抗压力强 系统的复杂度高 面临的挑战面临的挑战用户产生的数据量巨大 假定按平均1000条/秒计算,用户每天产生近亿条数据 Feed的扩散范围大(从几个人到几百万人) 合并、去重、排序规则复杂,要求实时,响应快速 用户请求量大 根据各业务的需要,提供个性化的筛...

Feed系统结构浅析@人人网
nullFeed系统结构浅析Feed系统结构浅析人人网 张铁安Feed系统的定位及功能描述Feed系统的定位及功能描述是SNS的核心功能 是SNS网站中用户信息的扩散传播通道 需要很高的实时性 与各业务系统联系紧密(input & output) 高效、稳定、抗压力强 系统的复杂度高 面临的挑战面临的挑战用户产生的数据量巨大 假定按平均1000条/秒计算,用户每天产生近亿条数据 Feed的扩散范围大(从几个人到几百万人) 合并、去重、排序规则复杂,要求实时,响应快速 用户请求量大 根据各业务的需要,提供个性化的筛选策略关于Push Or Pull 的思考关于Push Or Pull 的思考获取数据的两种方式 推模式 拉模式 结论 从查询的效率考虑,推模式更合适Feed System构成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关于Open SourceFeed系统中使用的OpenSource项目 ICE(通信框架) Mysql(DB) Memcache + libmemcached(Content 内存Cache) Google Protobuf (对象的序列化及反序列化) Quicklz (二进制数据压缩) Boost multi-index container(多索引结构) Tokyo Tyrant (key-value存储引擎) Google Ctemplate (数据的 模板 个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载 渲染引擎) Nginx + FastCgi (WebServer)Feed的分发系统Feed的分发系统数据的拆分 Index + content 收消息用户列表的Cache策略 LRU & Update Notify 异步线程池 合理设置线程个数解决脉冲式请求Feed Cache的内存优化Feed Cache的内存优化FlyWeight的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 思想 基于FlyWeight思想的Cache结构基于FlyWeight思想的Cache结构FeedContentCache & Index Cache服务间的FlyWeight Index服务内步的FlyWeight结构Index服务内步的FlyWeight结构FeedNews服务内部的FlyWeight Index Cache的多条件查询Index Cache的多条件查询利用multi_index支持类似数据库的查寻方式,对同一个数据集,可以按不同的维度建立索引,方便支持不同条件的查询,同时对于排序结果,可以做到实时的更新 Boost Multi Index ContainerBoost Multi Index Container关于内存的压缩存储关于内存的压缩存储各种压缩 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 zlib lzo fastlz lzf quicklz 对象序列化及压缩 Protobuf + quicklz Memcache & McProxy高扩展性的内存Cache 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 Memcache & McProxy高扩展性的内存Cache方案我们对内存Cache的要求 支持高并发 在内存容量不断增加的情况下,查询性能不会有大的降低 易于扩容及高可用性(一致性哈希) 统一的配置管理,使用简单Memcache集群Memcache集群索引的持久化系统索引的持久化系统索引持久化的原因 解决索引的内存Cache重启后无法快速恢复的问题 利用相对便宜的存储介质为用户尽量保存多一些内容 需要解决的问题 每天近60亿条索引的持久化存储(5w+ write/s) 传说中的解决方案 Mysql ?(最高1K query/s) Open Source key-value db ? (还是不够快) GFS ? (听说Google有,但是光盘没有卖的) 索引的持久化系统 —— 五花八门的key-value DB索引的持久化系统 —— 五花八门的key-value DB索引的持久化系统 —— Feed Index DB索引的持久化系统 —— Feed Index DB需要解决的难题 数万级的每秒写入 每秒几千次的随机读 每天100G+的新增索引数据 索引的持久化系统 —— Feed Index DB索引的持久化系统 —— Feed Index DB解决思路 常规办法对于每秒几万次的写入,除了堆几十或上百台机器,别无它法。测试结果:做Raid5的机器,在完全随机写的情况下,IOPS也就能到800+ 如果我们将随机写改为顺序写文件,写入效率会高出很多 需要充分的利用内存,在内存中将写入的随机索引进行整理和积攒,再顺序的写入硬盘 由于使用了延迟写入内存的方式,需要在Log中记录所有操作,方便出问题时能找回内存中的数据 使用异步Direct IO,不要让OS多管闲事,浪费内存 选用更牛B的硬盘,我们用的是SSD 索引的持久化系统 —— Feed Index DB索引的持久化系统 —— Feed Index DB解决方案 合并写操作 通过Log保证Down机后数据恢复 使用TT保存索引 使用异步IO读写文件 使用Direct IO屏蔽OS的Cache策略 使用SSD解决大量的并发读取 索引的持久化系统 —— Feed Index DB结构索引的持久化系统 —— Feed Index DB结构Index Node 责任存储 UserID 到 最新一块Data Block的位置信息 使用Tokyo Tyrant保存key-value对应关系 因为数据量很小,所以TT很好用 Data Node 异步的Direct IO 每个用户可以分配N个Block,每个Block占2K大小,N个Block首尾相连,很像一个单向链表 索引的持久化系统 —— Data File 结构索引的持久化系统 —— Data File 结构模板的渲染引擎及展示模板的渲染引擎及展示数据格式的一致性 由于Feed的输入很多,自来各个不同业务,需要保证数据格式的一致性,输出时,通过渲染引擎将数据转化为不同的View,提供给各业务 技术方案 Ctemplate提供高效的模板渲染能力 Nginx+FastCgi提供高并发的Web服务 想了解更多有趣内容,欢迎加入我们的开发团队想了解更多有趣内容,欢迎加入我们的开发团队我们正在努力做好的事情 Feed System(新鲜事系统) IM Server (人人桌面服务器端) Ad Engine(广告引擎系统) 感兴趣的快来报名 Linux C++开发 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 师(3~5人) Email: antonio200@gmail.com jobs@opi-corp.com EndEndthanks
本文档为【Feed系统结构浅析@人人网】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_683453
暂无简介~
格式:ppt
大小:553KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2013-04-23
浏览量:14