您好,登錄后才能下訂單哦!
如何理解數(shù)據(jù)庫(kù)讀寫分離架構(gòu)?,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
RD:數(shù)據(jù)量太大,數(shù)據(jù)庫(kù)扛不住了,幫忙申請(qǐng)一個(gè)從庫(kù),讀寫分離。
DBA:數(shù)據(jù)量多少?
RD:5000w左右。
DBA:讀寫吞吐量呢?
RD:讀QPS約200,寫QPS約30左右。
額,數(shù)據(jù)庫(kù)讀寫分離雖然不難,但并不是所有的“數(shù)據(jù)庫(kù)扛不住”的場(chǎng)景,都應(yīng)該用讀寫分離。今天花1分鐘簡(jiǎn)單介紹下這個(gè)場(chǎng)景。
什么是數(shù)據(jù)庫(kù)讀寫分離?
一主多從,讀寫分離,主動(dòng)同步,是一種常見的數(shù)據(jù)庫(kù)架構(gòu),一般來(lái)說(shuō):
主庫(kù),提供數(shù)據(jù)庫(kù)寫服務(wù)
從庫(kù),提供數(shù)據(jù)庫(kù)讀服務(wù)
主從之間,通過(guò)某種機(jī)制同步數(shù)據(jù),例如mysql的binlog
一個(gè)組從同步集群通常稱為一個(gè)“分組”。
分組架構(gòu)究竟解決什么問(wèn)題?
大部分互聯(lián)網(wǎng)業(yè)務(wù)讀多寫少,數(shù)據(jù)庫(kù)的讀往往最先成為性能瓶頸,如果希望:
線性提升數(shù)據(jù)庫(kù)讀性能
通過(guò)消除讀寫鎖沖突提升數(shù)據(jù)庫(kù)寫性能
此時(shí)可以使用分組架構(gòu)。
一句話,分組主要解決“數(shù)據(jù)庫(kù)讀性能瓶頸”問(wèn)題,在數(shù)據(jù)庫(kù)扛不住讀的時(shí)候,通常讀寫分離,通過(guò)增加從庫(kù)線性提升系統(tǒng)讀性能。
什么是數(shù)據(jù)庫(kù)水平切分?
水平切分,也是一種常見的數(shù)據(jù)庫(kù)架構(gòu),一般來(lái)說(shuō):
每個(gè)數(shù)據(jù)庫(kù)之間沒有數(shù)據(jù)重合,沒有類似binlog同步的關(guān)聯(lián)
所有數(shù)據(jù)并集,組成全部數(shù)據(jù)
會(huì)用算法,來(lái)完成數(shù)據(jù)分割,例如“取?!?/p>
一個(gè)水平切分集群中的每一個(gè)數(shù)據(jù)庫(kù),通常稱為一個(gè)“分片”。
水平切分架構(gòu)究竟解決什么問(wèn)題?
大部分互聯(lián)網(wǎng)業(yè)務(wù)數(shù)據(jù)量很大,單庫(kù)容量容易成為瓶頸,如果希望:
線性降低單庫(kù)數(shù)據(jù)容量
線性提升數(shù)據(jù)庫(kù)寫性能
此時(shí)可以使用水平切分架構(gòu)。
一句話總結(jié),水平切分主要解決“數(shù)據(jù)庫(kù)數(shù)據(jù)量大”問(wèn)題,在數(shù)據(jù)庫(kù)容量扛不住的時(shí)候,通常水平切分。
我為什么不喜歡讀寫分離?
對(duì)于互聯(lián)網(wǎng)大數(shù)據(jù)量,高并發(fā)量,高可用要求高,一致性要求高,前端面向用戶的業(yè)務(wù)場(chǎng)景,如果數(shù)據(jù)庫(kù)讀寫分離:
數(shù)據(jù)庫(kù)連接池需要區(qū)分:讀連接池,寫連接池
如果要保證讀高可用,讀連接池要實(shí)現(xiàn)故障自動(dòng)轉(zhuǎn)移
有潛在的主庫(kù)從庫(kù)一致性問(wèn)題
如果面臨的是“讀性能瓶頸”問(wèn)題,增加緩存可能來(lái)得更直接,更容易一點(diǎn)
關(guān)于成本,從庫(kù)的成本比緩存高不少
對(duì)于云上的架構(gòu),以阿里云為例,主庫(kù)提供高可用服務(wù),從庫(kù)不提供高可用服務(wù)
所以,上述業(yè)務(wù)場(chǎng)景下,建議使用緩存架構(gòu)來(lái)加強(qiáng)系統(tǒng)讀性能,替代數(shù)據(jù)庫(kù)主從分離架構(gòu)。
當(dāng)然,使用緩存架構(gòu)的潛在問(wèn)題:如果緩存掛了,流量全部壓到數(shù)據(jù)庫(kù)上,數(shù)據(jù)庫(kù)會(huì)雪崩。因此,對(duì)緩存,一般也會(huì)做水平切分,確保不會(huì)同一時(shí)間全掛。
總結(jié)
讀寫分離,解決“數(shù)據(jù)庫(kù)讀性能瓶頸”問(wèn)題
水平切分,解決“數(shù)據(jù)庫(kù)數(shù)據(jù)量大”問(wèn)題
對(duì)于互聯(lián)網(wǎng)大數(shù)據(jù)量,高并發(fā)量,高可用要求高,一致性要求高,前端面向用戶的業(yè)務(wù)場(chǎng)景,微服務(wù)緩存架構(gòu),可能比數(shù)據(jù)庫(kù)讀寫分離架構(gòu)更合適
關(guān)于如何理解數(shù)據(jù)庫(kù)讀寫分離架構(gòu)?問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。