转载

微博 Feed 架构介绍

本文系《开发者头条》8 月 27 日好评文章,感谢作者 古月中心相心

欢迎自荐、投稿,采用就送IO币!

原文地址 http://toutiao.io/r/zw5u3

开发者必装的 App,你装了没? http://toutiao.io/download

微博 Feed 架构介绍

微博作为当今中国最大的社交媒体平台,每天都有上亿人访问。而 Feed 作为微博最为核心的功能,每天有高达数十亿的请求,高峰期每秒的请求量上万。如何设计高可用的 Feed 系统,来应对如此高并发的访问,极具挑战。

下面,我们将具体探讨微博 Feed 系统的架构,希望通过这次讲解,大家能够掌握微博 Feed 系统架构的基本知识。

大纲

  • 初探 Feed

    • what why how

  • Feed 业务体系

    • 核心业务

    • 关联业务

  • Feed架构 设计

    • Feed存储

    • Feed聚合

  • Feed未来发展

    • 业务发展

    • 架构发展

一 初探 Feed-What is feed

从广义上讲, Feed 是指为满足用户以某种形式持续获得更新信息的需求而提供的格式标准的信息出口。

1、 PC Feed

微博 Feed 架构介绍

2、mobile feed

微博体系中, Feed 是指用户通过关注关系,聚合好友最新微博以供自己消费的信息服务,其中也包括分享微博。

微博 Feed 架构介绍

分享

微博 Feed 架构介绍

倾听

微博 Feed 架构介绍

看新闻

微博 Feed 架构介绍

围观

微博 Feed 架构介绍

二、Feed 业务体系

1、微博

微博 Feed 架构介绍

2、page

微博 Feed 架构介绍

3、Card

微博 Feed 架构介绍

4、计数器

微博 Feed 架构介绍

5、未读数、话题、分组、转评赞、广告和趋势

微博 Feed 架构介绍

三、Feed 系统架构设计

1. 如何设计一个高可用的 Feed 系统?

  • 如何存储用户发表的微博

  • 如何聚合关注用户发表的微博

2. Feed 存储

Feed 特征

  • 每天发博量大:上亿条

  • 发博峰值高:几万 /s

  • 并发访问量大:几万 /s

  • 访问热点集中:最近三天占 99%

存储选型

微博 Feed 架构介绍

存储特点

  • 持久化: MySQLRedisHBase

  • 并发读 QPS :几百万 /sMemcachedRedis

  • 最近三天热点数据: Memcached

实现方案 Memcached+MySQL

Memcached 存储最近三天热点数据、 MySQL 存储全量数据

3、Feed 存储 -MySQL

分库分表

  • 按访问用户维度 hash 来分库

  • 按访问时间维度来分表

部署形式

  • 一主多从

  • 读写分离

HA

  • 主从机制、自动切换

  • backup 离线灾备

    微博 Feed 架构介绍

4、Feed 存储 -Memcached

高可用性架构

微博 Feed 架构介绍

业务架构

  • mvd :存储用户最近 1550 条。

  • mvl :存储用户最近 200 条。

    微博 Feed 架构介绍

5、Feed 聚合

如何聚合关注用户的微博?

拉模型

微博 Feed 架构介绍

优缺点

  • 优点:架构简单、一致性好、写入过程开销小

  • 缺点:写少读多,网络开销大,资源读取量大

推模型

微博 Feed 架构介绍

优缺点

  • 优点:下行网络开销小,资源成本低

  • 缺点:写入成本较高,资源写瓶颈高

四 未来

微博 Feed 架构介绍

业务发展

  • 分发控制

  • 智能 Feed

  • 实时反馈

架构发展

  • 存储架构

  • 消息架构

  • 可插拔

  • cell 模型

作业

设计一个简化的Feed系统。

10 亿用户,每天发表 1 亿条微博。

平均每秒 500feed 请求,平均每个人关注 10 个用户。

平均每秒 20000feed 请求,平均每个人关注 200 个用户。

针对上面两种情况,分别设计 feed 系统,要求给出存储选型和对应的机器数量。

------------------新兵训练营简介 ------------------

微博平台新兵训练营活动是微博平台内部组织的针对新入职同学的团队融入培训课程,目标是团队融入,包括人的融入,氛围融入,技术融入。 当前已经进行4期活动,很多学员迅速成长为平台技术骨干。

微博平台是非常注重团队成员融入与成长的团队,在这里有人帮你融入,有人和你一起成长,也欢迎小伙伴们加入微博平台,欢迎私信咨询。

------------------讲师简介------------------

胡忠想,微博名 @古月中心相心, 目前任职于新浪微博平台研发及大数据部,主要负责微博 Feed 策略相关工作,曾先后参与微博 Feed 存储、微博计数器、微博阅读数等重大业务产品的开发。2012年3月份毕业于北京航空航天大学计算系,同年4月份,加入新浪微博并工作至今。业余爱好户 外,曾徒步过贡嘎、雨崩,攀登过四姑娘三峰。 新兵训练营第一期学员。

(点击 阅读原文 完整阅读)

《开发者头条》应用下载地址(支持 iOS、Android) http://toutiao.io/download

微博 Feed 架构介绍

开发者头条 - 开发者的首选阅读分享平台

http://toutiao.io/

【微信号】 kaifazhetoutiao 欢迎关注!

正文到此结束
Loading...