> 原文出處:http://weibo.com/p/1001643877261186063112
> 作者:胡忠想[@古月中心相心](http://weibo.com/n/%E5%8F%A4%E6%9C%88%E4%B8%AD%E5%BF%83%E7%9B%B8%E5%BF%83)

微博作為當今中國最大的社交媒體平臺,每天都有上億人訪問。而Feed作為微博最為核心的功能,每天有高達數十億的請求,高峰期每秒的請求量上萬。如何設計高可用的Feed系統,來應對如此高并發的訪問,極具挑戰。
下面,我們將具體探討微博Feed系統的架構,希望通過這次講解,大家能夠掌握微博Feed系統架構的基本知識。
# 大綱
[TOC=2,2]
## 一、初探Feed-What is feed?
從廣義上講,Feed是指為滿足用戶以某種形式持續獲得更新信息的需求而提供的格式標準的信息出口。
### **1、****PC Feed**

### **2、mobile feed**
微博體系中,Feed是指用戶通過關注關系,聚合好友最新微博以供自己消費的信息服務,其中也包括分享微博。

### **分享**

### **傾聽**

### **看新聞**

### **圍觀**

## 二、Feed業務體系
### **1、微博**

### **2、page**

### **3、Card**

### **4、計數器**

### **5、未讀數、話題、分組、轉評贊、廣告和趨勢**

## 三、Feed系統架構設計
### **1\. 如何設計一個高可用的Feed系統?**
* 如何存儲用戶發表的微博
* 如何聚合關注用戶發表的微博
### 2\. Feed存儲
**Feed特征**
* 每天發博量大:上億條
* 發博峰值高:幾萬/s
* 并發訪問量大:幾萬/s
* 訪問熱點集中:最近三天占99% ? ?
**存儲選型**

**存儲特點**
* 持久化:MySQL、Redis、HBase
* 并發讀QPS:幾百萬/s:Memcached、Redis
* 最近三天熱點數據:Memcached
**實現方案?Memcached+MySQL**
Memcached存儲最近三天熱點數據、MySQL存儲全量數據
### 3、Feed存儲-MySQL
**分庫分表**
* 按訪問用戶維度hash來分庫
* 按訪問時間維度來分表
**部署形式**
* 一主多從
* 讀寫分離
**HA**
* 主從機制、自動切換
* backup離線災備

### 4、Feed存儲-Memcached
**高可用性架構**

**業務架構**
* mvd:存儲用戶最近15天50條。
* mvl:存儲用戶最近200條。

### 5、Feed聚合
如何聚合關注用戶的微博?
**拉模型**

**優缺點**
* 優點:架構簡單、一致性好、寫入過程開銷小
* 缺點:寫少讀多,網絡開銷大,資源讀取量大
**推模型**

**優缺點**
* 優點:下行網絡開銷小,資源成本低
* 缺點:寫入成本較高,資源寫瓶頸高
## 四、未來

**業務發展**
* 分發控制
* 智能Feed
* 實時反饋
**架構發展**
* 存儲架構
* 消息架構
* 可插拔
* cell模型
## 作業
?? ? ? ?設計一個簡化的Feed系統。
–?10億用戶,每天發表1億條微博。
–?平均每秒500次feed請求,平均每個人關注10個用戶。
–?平均每秒20000次feed請求,平均每個人關注200個用戶。
–?針對上面兩種情況,分別設計feed系統,要求給出存儲選型和對應的機器數量。
**------------------新兵訓練營簡介**------------------
微博平臺新兵訓練營活動是微博平臺內部組織的針對新入職同學的團隊融入培訓課程,目標是團隊融入,包括人的融入,氛圍融入,技術融入。當前已經進行4期活動,很多學員迅速成長為平臺技術骨干。
微博平臺是非常注重團隊成員融入與成長的團隊,在這里有人幫你融入,有人和你一起成長,也歡迎小伙伴們加入微博平臺,歡迎私信咨詢。
**------------------講師簡介**------------------
胡忠想,微博名[@古月中心相心](http://weibo.com/n/%E5%8F%A4%E6%9C%88%E4%B8%AD%E5%BF%83%E7%9B%B8%E5%BF%83),目前任職于新浪微博平臺研發及大數據部,主要負責微博 Feed 策略相關工作,曾先后參與微博 Feed 存儲、微博計數器、微博閱讀數等重大業務產品的開發。2012年3月份畢業于北京航空航天大學計算系,同年4月份,加入新浪微博并工作至今。業余愛好戶 外,曾徒步過貢嘎、雨崩,攀登過四姑娘三峰。新兵訓練營第一期學員。