本文系《开发者头条》8 月 27 日好评文章,感谢作者 古月中心相心 。
欢迎自荐、投稿,采用就送IO币!
原文地址 : http://toutiao.io/r/zw5u3
开发者必装的 App,你装了没? http://toutiao.io/download
微博作为当今中国最大的社交媒体平台,每天都有上亿人访问。而 Feed 作为微博最为核心的功能,每天有高达数十亿的请求,高峰期每秒的请求量上万。如何设计高可用的 Feed 系统,来应对如此高并发的访问,极具挑战。
下面,我们将具体探讨微博 Feed 系统的架构,希望通过这次讲解,大家能够掌握微博 Feed 系统架构的基本知识。
初探 Feed
what ? why ? how ?
Feed 业务体系
核心业务
关联业务
Feed架构 设计
Feed存储
Feed聚合
Feed未来发展
业务发展
架构发展
从广义上讲, Feed 是指为满足用户以某种形式持续获得更新信息的需求而提供的格式标准的信息出口。
微博体系中, Feed 是指用户通过关注关系,聚合好友最新微博以供自己消费的信息服务,其中也包括分享微博。
如何存储用户发表的微博
如何聚合关注用户发表的微博
每天发博量大:上亿条
发博峰值高:几万 /s
并发访问量大:几万 /s
访问热点集中:最近三天占 99%
持久化: MySQL 、 Redis 、 HBase
并发读 QPS :几百万 /s : Memcached 、 Redis
最近三天热点数据: Memcached
Memcached 存储最近三天热点数据、 MySQL 存储全量数据
按访问用户维度 hash 来分库
按访问时间维度来分表
一主多从
读写分离
主从机制、自动切换
backup 离线灾备
mvd :存储用户最近 15 天 50 条。
mvl :存储用户最近 200 条。
如何聚合关注用户的微博?
优点:架构简单、一致性好、写入过程开销小
缺点:写少读多,网络开销大,资源读取量大
优点:下行网络开销小,资源成本低
缺点:写入成本较高,资源写瓶颈高
分发控制
智能 Feed
实时反馈
存储架构
消息架构
可插拔
cell 模型
设计一个简化的Feed系统。
– 10 亿用户,每天发表 1 亿条微博。
– 平均每秒 500 次 feed 请求,平均每个人关注 10 个用户。
– 平均每秒 20000 次 feed 请求,平均每个人关注 200 个用户。
– 针对上面两种情况,分别设计 feed 系统,要求给出存储选型和对应的机器数量。
------------------新兵训练营简介 ------------------
微博平台新兵训练营活动是微博平台内部组织的针对新入职同学的团队融入培训课程,目标是团队融入,包括人的融入,氛围融入,技术融入。 当前已经进行4期活动,很多学员迅速成长为平台技术骨干。
微博平台是非常注重团队成员融入与成长的团队,在这里有人帮你融入,有人和你一起成长,也欢迎小伙伴们加入微博平台,欢迎私信咨询。
------------------讲师简介------------------
胡忠想,微博名 @古月中心相心, 目前任职于新浪微博平台研发及大数据部,主要负责微博 Feed 策略相关工作,曾先后参与微博 Feed 存储、微博计数器、微博阅读数等重大业务产品的开发。2012年3月份毕业于北京航空航天大学计算系,同年4月份,加入新浪微博并工作至今。业余爱好户 外,曾徒步过贡嘎、雨崩,攀登过四姑娘三峰。 新兵训练营第一期学员。
(点击 阅读原文 完整阅读)
《开发者头条》应用下载地址(支持 iOS、Android) : http://toutiao.io/download
http://toutiao.io/
【微信号】 kaifazhetoutiao 欢迎关注!