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