溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

淺析分布式數(shù)據(jù)庫(kù)中間件DDM

發(fā)布時(shí)間:2020-07-23 18:57:11 來(lái)源:網(wǎng)絡(luò) 閱讀:727 作者:中間件小哥 欄目:云計(jì)算

前言

DDM是什么?這是華為云Paas推出的分布式數(shù)據(jù)庫(kù)中間件,DDM(Distributed Database Middleware)是一個(gè)實(shí)現(xiàn)了Mysql協(xié)議棧的服務(wù)器,前端用戶可以把它看做一個(gè)數(shù)據(jù)庫(kù)代理,用Mysql客戶端工具和命令行訪問(wèn),而DDM后端連接一到多個(gè)Mysql Server。因此,DDM本身并不存儲(chǔ)數(shù)據(jù),數(shù)據(jù)是在后端連接的Mysql Server上存儲(chǔ)的。簡(jiǎn)單來(lái)說(shuō),DDM就是Mysql的最佳伴侶,一定程度上讓Mysql擁有了跟Oracle PK的能力。這樣聽(tīng)起來(lái)DDM好像是Mysql的輔助大神,這里有必要對(duì)八卦下DDM發(fā)展背景,了解下DDM的前世歷程。

 

NoSQL與SQL之爭(zhēng)

目前,互聯(lián)網(wǎng)常有海量數(shù)據(jù)高并發(fā)和存儲(chǔ)的場(chǎng)景,對(duì)于數(shù)據(jù)的存儲(chǔ),目前有基于SQL (Structured Query Language)的關(guān)系型數(shù)據(jù)庫(kù)和NoSQL(Not Only SQL)的非關(guān)系型數(shù)據(jù)庫(kù)。SQL數(shù)據(jù)存在特定結(jié)構(gòu)的表中;而NoSQL則更加靈活和可擴(kuò)展,存儲(chǔ)方式可以是JSON文檔、哈希表或者其他方式,比如鍵值存儲(chǔ)(redis,ROMA,Memcached)數(shù)據(jù)庫(kù)應(yīng)用在排行更新,會(huì)話保存,面向文檔的數(shù)據(jù)庫(kù)(mongoDB、couchDB)應(yīng)用在日志記錄,面向列的數(shù)據(jù)庫(kù)(Cassandra、HBase)在博客中的應(yīng)用。而且速度極高。

 

雖然在云計(jì)算時(shí)代,傳統(tǒng)數(shù)據(jù)庫(kù)存在著先天性的弊端,但是NoSQL數(shù)據(jù)庫(kù)只能在特定場(chǎng)景下有奇效,只能作為傳統(tǒng)數(shù)據(jù)的補(bǔ)充而不能將其替代。

 

關(guān)系型數(shù)據(jù)庫(kù)性能瓶頸

目前絕大多數(shù)數(shù)據(jù)庫(kù)不具備自動(dòng)擴(kuò)展,自動(dòng)遷移的能力,對(duì)于單庫(kù)單表性能瓶頸明顯,當(dāng)單表超過(guò)1000W數(shù)據(jù)量,性能會(huì)出現(xiàn)比較明顯的下降。為了解決該難題,常見(jiàn)的做法就是進(jìn)行分庫(kù)分表來(lái)規(guī)避。

 

垂直分庫(kù):可按照業(yè)務(wù)模塊進(jìn)行劃分,把數(shù)據(jù)分在不同的庫(kù)中。

淺析分布式數(shù)據(jù)庫(kù)中間件DDM

 

水平分庫(kù):我們發(fā)現(xiàn)某些表的數(shù)據(jù)量已經(jīng)超過(guò)1000W,QPS顯著下降,這里可以對(duì)這種表進(jìn)行進(jìn)一步水平拆分,做成多個(gè)分片表。大多數(shù)電商企業(yè)會(huì)按照日期分片,但又衍生出來(lái)一些問(wèn)題,在固定時(shí)段中對(duì)某個(gè)分片壓力很大,其他分片此時(shí)處于空閑狀態(tài),在電商企業(yè)高并發(fā)的場(chǎng)景下,會(huì)產(chǎn)生大量數(shù)據(jù),此時(shí)又產(chǎn)生短時(shí)間內(nèi)單庫(kù)QPS瓶頸的問(wèn)題。

淺析分布式數(shù)據(jù)庫(kù)中間件DDM

 

拆分規(guī)則優(yōu)化:可以根據(jù)拆分字段,進(jìn)行取模的方式來(lái)做到數(shù)據(jù)大致平均分布到多個(gè)分片上??梢员WC整體系統(tǒng)的QPS得到提升,但又衍生出來(lái)一些問(wèn)題:分片數(shù)量不夠需要擴(kuò)容的問(wèn)題,跨分片事務(wù)一致性無(wú)法保證的問(wèn)題。

 

數(shù)據(jù)庫(kù)中間件

為了減少對(duì)應(yīng)用的侵入性,并且要將壓力打在中間件上,該中間件負(fù)責(zé)和上層應(yīng)用打交道,對(duì)應(yīng)用可表現(xiàn)為一個(gè)獨(dú)立的數(shù)據(jù)庫(kù),而屏蔽底層復(fù)雜的系統(tǒng)細(xì)節(jié)。分布式數(shù)據(jù)庫(kù)中間件除了基本的分表分庫(kù)功能,還可以豐富一下,比如講讀寫(xiě)分離或者水平擴(kuò)容功能集成在一起,或者比如讀寫(xiě)分離本身也可以作為一個(gè)獨(dú)立的中間件。(DDM,Cobar,MyCAT, TDDL等)。

 

上述提到的分片數(shù)量不夠的擴(kuò)容以及分布式事務(wù)一致性的問(wèn)題,在華為云的DDM已經(jīng)得到解決,并且中間件的功能在不斷豐富,已經(jīng)成為高并發(fā)應(yīng)用的絕對(duì)利器。


向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI