Feed架構(gòu)介紹

2018-02-24 15:46 更新

原文出處: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)的基本知識。

大綱

一、初探Feed-What is feed?

從廣義上講,F(xiàn)eed是指為滿足用戶以某種形式持續(xù)獲得更新信息的需求而提供的格式標(biāo)準的信息出口。

1、**PC Feed**

2、mobile feed

微博體系中,F(xiàn)eed是指用戶通過關(guān)注關(guān)系,聚合好友最新微博以供自己消費的信息服務(wù),其中也包括分享微博。

分享

傾聽

看新聞

圍觀

二、Feed業(yè)務(wù)體系

1、微博

2、page

3、Card

4、計數(shù)器

5、未讀數(shù)、話題、分組、轉(zhuǎn)評贊、廣告和趨勢

三、Feed系統(tǒng)架構(gòu)設(shè)計

1. 如何設(shè)計一個高可用的Feed系統(tǒng)?

  • 如何存儲用戶發(fā)表的微博

  • 如何聚合關(guān)注用戶發(fā)表的微博

2. Feed存儲

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ù)

3、Feed存儲-MySQL

分庫分表

  • 按訪問用戶維度hash來分庫

  • 按訪問時間維度來分表

    部署形式

  • 一主多從

  • 讀寫分離

    HA

  • 主從機制、自動切換

  • backup離線災(zāi)備

4、Feed存儲-Memcached

高可用性架構(gòu)

業(yè)務(wù)架構(gòu)

  • mvd:存儲用戶最近15天50條。

  • mvl:存儲用戶最近200條。

5、Feed聚合

如何聚合關(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)

  • 可插拔

  • cell模型

作業(yè)

?? ? ? ?設(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é)員。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號