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