原文出處:http://weibo.com/p/1001643877261186063112
作者:胡忠想@古月中心相心
微博作為當今中國最大的社交媒體平臺,每天都有上億人訪問。而Feed作為微博最為核心的功能,每天有高達數(shù)十億的請求,高峰期每秒的請求量上萬。如何設計高可用的Feed系統(tǒng),來應對如此高并發(fā)的訪問,極具挑戰(zhàn)。
下面,我們將具體探討微博Feed系統(tǒng)的架構,希望通過這次講解,大家能夠掌握微博Feed系統(tǒng)架構的基本知識。
從廣義上講,F(xiàn)eed是指為滿足用戶以某種形式持續(xù)獲得更新信息的需求而提供的格式標準的信息出口。
微博體系中,F(xiàn)eed是指用戶通過關注關系,聚合好友最新微博以供自己消費的信息服務,其中也包括分享微博。
如何存儲用戶發(fā)表的微博
Feed特征
每天發(fā)博量大:上億條
發(fā)博峰值高:幾萬/s
并發(fā)訪問量大:幾萬/s
訪問熱點集中:最近三天占99% ? ?
存儲選型
存儲特點
持久化:MySQL、Redis、HBase
并發(fā)讀QPS:幾百萬/s:Memcached、Redis
最近三天熱點數(shù)據(jù):Memcached
實現(xiàn)方案?Memcached+MySQL
Memcached存儲最近三天熱點數(shù)據(jù)、MySQL存儲全量數(shù)據(jù)
分庫分表
按訪問用戶維度hash來分庫
按訪問時間維度來分表
部署形式
一主多從
讀寫分離
HA
主從機制、自動切換
backup離線災備
高可用性架構
業(yè)務架構
mvd:存儲用戶最近15天50條。
mvl:存儲用戶最近200條。
如何聚合關注用戶的微博?
拉模型
優(yōu)缺點
優(yōu)點:架構簡單、一致性好、寫入過程開銷小
缺點:寫少讀多,網(wǎng)絡開銷大,資源讀取量大
推模型
優(yōu)缺點
優(yōu)點:下行網(wǎng)絡開銷小,資源成本低
業(yè)務發(fā)展
分發(fā)控制
智能Feed
實時反饋
架構發(fā)展
存儲架構
消息架構
可插拔
?? ? ? ?設計一個簡化的Feed系統(tǒng)。
–?10億用戶,每天發(fā)表1億條微博。
–?平均每秒500次feed請求,平均每個人關注10個用戶。
–?平均每秒20000次feed請求,平均每個人關注200個用戶。
–?針對上面兩種情況,分別設計feed系統(tǒng),要求給出存儲選型和對應的機器數(shù)量。
------------------新兵訓練營簡介------------------
微博平臺新兵訓練營活動是微博平臺內(nèi)部組織的針對新入職同學的團隊融入培訓課程,目標是團隊融入,包括人的融入,氛圍融入,技術融入。當前已經(jīng)進行4期活動,很多學員迅速成長為平臺技術骨干。
微博平臺是非常注重團隊成員融入與成長的團隊,在這里有人幫你融入,有人和你一起成長,也歡迎小伙伴們加入微博平臺,歡迎私信咨詢。
------------------講師簡介------------------
胡忠想,微博名@古月中心相心,目前任職于新浪微博平臺研發(fā)及大數(shù)據(jù)部,主要負責微博 Feed 策略相關工作,曾先后參與微博 Feed 存儲、微博計數(shù)器、微博閱讀數(shù)等重大業(yè)務產(chǎn)品的開發(fā)。2012年3月份畢業(yè)于北京航空航天大學計算系,同年4月份,加入新浪微博并工作至今。業(yè)余愛好戶 外,曾徒步過貢嘎、雨崩,攀登過四姑娘三峰。新兵訓練營第一期學員。
更多建議: