新聞中心
#微架構(gòu)設(shè)計(jì)# V5版微博推出表態(tài)業(yè)務(wù),用戶可以快速表達(dá)意見。假設(shè)對(duì)表態(tài)業(yè)務(wù)進(jìn)行簡(jiǎn)化,只保留最新三條表態(tài),多余的表態(tài)不再展示。表態(tài)類似于評(píng)論,熱度非常明顯,一條微博的表態(tài)可能有上千個(gè),峰值寫入也會(huì)超過1000/s,如何精簡(jiǎn)存儲(chǔ)那?MC+Mysql or Redis or ?

專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)雅安免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
分析快速表態(tài),一條微博存3個(gè)表態(tài),而每天有上億微博,存儲(chǔ)量是微博的3倍,量極大。
最新的3條表態(tài),對(duì)更新要求高,每發(fā)一條新表態(tài),就要去更新,寫入量瞬間峰值也會(huì)非常大,甚至到達(dá)1000次/秒。
可見我們面對(duì)的主要挑戰(zhàn)有兩個(gè):海量的表態(tài)數(shù)據(jù)存儲(chǔ)和每秒上千次的并發(fā)寫入。
具體分析如下:
- 數(shù)據(jù)特點(diǎn)
- key無(wú)限(與微博數(shù)量相當(dāng))
- 數(shù)據(jù)冷熱程度明顯(最近幾天的微博的表態(tài)訪問量較大)
- 只需要存儲(chǔ)最新的3條表態(tài)
- 方案對(duì)比
針對(duì)上面數(shù)據(jù)的特點(diǎn),可以考慮的存儲(chǔ)方案有redis、mc+mysql、HBase等。下面從幾個(gè)維度對(duì)這幾個(gè)方案進(jìn)行對(duì)比:
我們?cè)跐M足并發(fā)讀寫量的需求時(shí),還要盡量節(jié)儉存儲(chǔ),從前面的提示可知,快速表態(tài)業(yè)務(wù)的并發(fā)寫入量可能會(huì)達(dá)到1000次/s,HBase顯得大材小用,而redis能很好滿足,但是經(jīng)過實(shí)際業(yè)務(wù)統(tǒng)計(jì),發(fā)現(xiàn)同一微博的表態(tài),每秒同時(shí)并發(fā)寫入量只有幾十次每秒,因此可以忽略mysql并發(fā)寫的問題,又考慮到redis的故障恢復(fù)成本較高。因此,mc+mysql相比于redis更加適合這個(gè)業(yè)務(wù)場(chǎng)景。
- 容量規(guī)劃
下面分析采用mc+mysql的存儲(chǔ)方案時(shí),如何進(jìn)行具體的容量規(guī)劃。
假設(shè),每天發(fā)表的微博數(shù)1億,有表態(tài)的占10%,則:
- mc 1億*10%*7*100B=7G(每天發(fā)表微博數(shù)*有表態(tài)的比例*一周*mc中每條記錄大?。?,命中率在99%以上。
- mysql 每天增加1億*10%=1000W行,峰值1000次/秒
- 存儲(chǔ)設(shè)計(jì)
主要涉及mc的設(shè)計(jì)和mysql的表結(jié)構(gòu)設(shè)計(jì)。
- mc key: 微博id, value:list(存放3個(gè)表態(tài)id)
- mysql
- 分庫(kù)策略 按微博id進(jìn)行hash,分為32個(gè)庫(kù)
- 分表策略 根據(jù)微博id按月分表
- 表結(jié)構(gòu)設(shè)計(jì)
+-----------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+-------+
| status_id | bigint(20) unsigned | NO | PRI | NULL |微博id |
| attitude_ids | varchar(50) | NO | | NULL |評(píng)論id |
- 邏輯設(shè)計(jì)
新聞名稱:#微架構(gòu)設(shè)計(jì)#快速表態(tài)存儲(chǔ)設(shè)計(jì)
本文來(lái)源:http://m.fisionsoft.com.cn/article/dpioocd.html


咨詢
建站咨詢
