Feed架構(gòu)介紹

2018-02-24 15:46 更新

原文出處: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í)。

大綱

一、初探Feed-What is feed?

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

1、**PC Feed**

2、mobile feed

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

分享

傾聽(tīng)

看新聞

圍觀

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

1、微博

2、page

3、Card

4、計(jì)數(shù)器

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

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

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

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

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

2. Feed存儲(chǔ)

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

3、Feed存儲(chǔ)-MySQL

分庫(kù)分表

  • 按訪問(wèn)用戶維度hash來(lái)分庫(kù)

  • 按訪問(wèn)時(shí)間維度來(lái)分表

    部署形式

  • 一主多從

  • 讀寫分離

    HA

  • 主從機(jī)制、自動(dòng)切換

  • backup離線災(zāi)備

4、Feed存儲(chǔ)-Memcached

高可用性架構(gòu)

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

  • mvd:存儲(chǔ)用戶最近15天50條。

  • mvl:存儲(chǔ)用戶最近200條。

5、Feed聚合

如何聚合關(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)銷小,資源成本低

  • 缺點(diǎn):寫入成本較高,資源寫瓶頸高

四、未來(lái)

業(yè)務(wù)發(fā)展

  • 分發(fā)控制

  • 智能Feed

  • 實(shí)時(shí)反饋

    架構(gòu)發(fā)展

  • 存儲(chǔ)架構(gòu)

  • 消息架構(gòu)

  • 可插拔

  • cell模型

作業(yè)

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)