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

分布式數(shù)據(jù)庫(kù)中間件DDM的示例分析,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)公司專注于寧海網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供寧海營(yíng)銷型網(wǎng)站建設(shè),寧海網(wǎng)站制作、寧海網(wǎng)頁(yè)設(shè)計(jì)、寧海網(wǎng)站官網(wǎng)定制、微信小程序開(kāi)發(fā)服務(wù),打造寧海網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供寧海網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

進(jìn)入云計(jì)算時(shí)代,傳統(tǒng)的數(shù)據(jù)庫(kù)在性能和容量等方面已無(wú)法滿足企業(yè)的要求,隨著數(shù)據(jù)量的不斷驟增,易于擴(kuò)展、拆分的數(shù)據(jù)庫(kù)解決方案對(duì)于企業(yè)的云化轉(zhuǎn)型更是顯得尤為重要。為使企業(yè)應(yīng)用上云更簡(jiǎn)單,分布式數(shù)據(jù)庫(kù)中間件DDM(Distributed Database Middleware)專注解決企業(yè)在上云過(guò)程中面臨的的數(shù)據(jù)庫(kù)瓶頸難題,不但更能輕松滿足水平拆分、擴(kuò)容、讀寫分離等業(yè)務(wù)需求,同時(shí)也比傳統(tǒng)方案更具性價(jià)比。接下來(lái)讓我們一起零距離解密DDM。

DDM是什么?

DDM專注于解決數(shù)據(jù)庫(kù)分布式擴(kuò)展問(wèn)題,它突破了傳統(tǒng)數(shù)據(jù)庫(kù)的容量和性能瓶頸,實(shí)現(xiàn)海量數(shù)據(jù)高并發(fā)訪問(wèn)。DDM提供了對(duì)應(yīng)用透明的數(shù)據(jù)庫(kù)讀寫分離、自動(dòng)的數(shù)據(jù)分片、靈活的彈性伸縮等分布式數(shù)據(jù)庫(kù)能力。

DDM如何定義讀寫分離?

從數(shù)據(jù)庫(kù)的角度來(lái)說(shuō),對(duì)于大多數(shù)應(yīng)用來(lái)說(shuō),從集中到分布,最基本的一個(gè)需求不是數(shù)據(jù)存儲(chǔ)的瓶頸,而是在于計(jì)算的瓶頸,即SQL查詢的瓶頸,在沒(méi)有讀寫分離的系統(tǒng)上,很可能高峰時(shí)段的一些復(fù)雜SQL查詢就導(dǎo)致數(shù)據(jù)庫(kù)系統(tǒng)陷入癱瘓,從保護(hù)數(shù)據(jù)庫(kù)的角度來(lái)說(shuō),我們應(yīng)該盡量避免沒(méi)有主從復(fù)制機(jī)制的單節(jié)點(diǎn)數(shù)據(jù)庫(kù)。傳統(tǒng)讀寫分離解決方案耦合應(yīng)用代碼,擴(kuò)容讀節(jié)點(diǎn)或修改讀寫分離策略等需要修改應(yīng)用代碼,升級(jí)應(yīng)用程序,非常復(fù)雜。DDM實(shí)現(xiàn)了透明讀寫分離,應(yīng)用實(shí)現(xiàn)讀寫分離不需要修改代碼,為了保證讀一致性, 默認(rèn)情況在事務(wù)中的讀全部分發(fā)到主節(jié)點(diǎn)。事務(wù)外的讀分發(fā)從節(jié)點(diǎn)。寫分發(fā)主節(jié)點(diǎn)。在應(yīng)用程序需求復(fù)雜時(shí),DDM提供了hint可由程序自主控制sql的讀寫分離邏輯。此外,后端DB如果部分節(jié)點(diǎn)故障了,DDM會(huì)自動(dòng)摘除故障節(jié)點(diǎn),自動(dòng)進(jìn)行主從切換,對(duì)應(yīng)用無(wú)感知。

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

( 附改造前后構(gòu)架對(duì)比圖)

應(yīng)用在微服務(wù)架構(gòu)下,服務(wù)會(huì)拆分的比原來(lái)更多,與數(shù)據(jù)庫(kù)的連接數(shù)也會(huì)增加很多,這是否同樣是分布式數(shù)據(jù)庫(kù)中間件需要解決的一個(gè)重要問(wèn)題?

對(duì)的。舉個(gè)栗子,比如某應(yīng)用的最大連接數(shù)是2000,未做服務(wù)化拆分前,應(yīng)用程序獨(dú)享2000個(gè)數(shù)據(jù)連接,假設(shè)拆分成100個(gè)微服務(wù),那么為了保證總的連接數(shù)不超過(guò)MySQL的最大連接數(shù),那么每個(gè)微服務(wù)能配置的最大連接數(shù)就是20.這對(duì)應(yīng)用幾乎是不可接受。市面上很多分庫(kù)分表中間件如Cobar、Atlas等,對(duì)后端MySQL的連接池管理是基于分片來(lái)實(shí)現(xiàn)的,而不具備整個(gè)MySQL實(shí)例的共享互通,抗并發(fā)能力被嚴(yán)重削弱。而DDM是真正基于MySQL實(shí)例模式實(shí)現(xiàn)的,一個(gè)MySQL實(shí)例下的所有數(shù)據(jù)庫(kù)共享一個(gè)連接池。這個(gè)對(duì)于分片來(lái)講,能避免有些庫(kù)的連接很空閑,有些庫(kù)的連接不夠用的情況,最大限度提高并行性。其中涉及到session級(jí)別的屬性由DDM自動(dòng)維護(hù),應(yīng)用程序無(wú)感知。

在這種共享模式下連接數(shù)有上限嗎?

DDM的前端連接與MySQL連接對(duì)比起來(lái)相對(duì)輕量級(jí),可以相對(duì)輕松支持上萬(wàn)的連接。當(dāng)然,為了防止單個(gè)用戶濫用資源,支持設(shè)置前端最大連接數(shù)限制。

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

( 附遷移流程圖)

 

在路由切換速度和內(nèi)容準(zhǔn)確性上DDM有哪些考慮?

關(guān)于切換路由速度,雖然業(yè)內(nèi)很多號(hào)稱毫秒級(jí),一般是省略了數(shù)據(jù)校驗(yàn),或者只校驗(yàn)條數(shù)。號(hào)稱是算法精巧已經(jīng)測(cè)試比較充分了。DDM認(rèn)為即使測(cè)試已經(jīng)充分了也難以保證百分之一百保證不出問(wèn)題。所以DDM通過(guò)設(shè)計(jì)了快速的校驗(yàn)算法,對(duì)數(shù)據(jù)的內(nèi)容進(jìn)行校驗(yàn),即使數(shù)據(jù)有一點(diǎn)點(diǎn)不一樣,算法也能校驗(yàn)出來(lái),同時(shí)充分利用了RDS的計(jì)算能力提高校驗(yàn)的速度。

在一般的大型應(yīng)用里,有的表數(shù)據(jù)量很大,有的表數(shù)據(jù)量少且不怎么更新,DDM是如何做到不同類型場(chǎng)景的支持?

針對(duì)業(yè)務(wù)會(huì)遇到的實(shí)際場(chǎng)景,DDM設(shè)計(jì)了三種表類型:分片表:針對(duì)那些數(shù)據(jù)量很大的表,需要切分到多個(gè)分片庫(kù)的表,這樣每個(gè)分片都有一部分?jǐn)?shù)據(jù),所有分片構(gòu)成了完整的數(shù)據(jù);單表:針對(duì)數(shù)據(jù)量相對(duì)比較少,沒(méi)有和其他分片表join查詢的需求。單表數(shù)據(jù)保存在默認(rèn)當(dāng)一個(gè)分片上,這種設(shè)計(jì)可以盡量兼容單表自身的復(fù)雜查詢;全局表:針對(duì)數(shù)據(jù)量和更新都比較少,但是和其它分片表有join的需求。全局表每個(gè)分片上保存一份完全一樣的數(shù)據(jù),這樣可以解決與分片表的join直接下推到RDS上執(zhí)行。

 

在分布式條件下,原有數(shù)據(jù)庫(kù)中的主鍵約束將無(wú)法使用,是不是需要引入外部機(jī)制保證數(shù)據(jù)唯一性標(biāo)識(shí),那么這種全局唯一序列DDM是如何保證的呢?

DDM 全局唯一序列,使用方法與 MySQL的AUTO_INCREMENT 類似。目前 DDM 可以保證該字段全局唯一和有序遞增,但不保證連續(xù)性。目前DDM設(shè)計(jì)了2種類型的序列機(jī)制,DB和TIME。DB方式的序列是指通過(guò)DB來(lái)實(shí)現(xiàn),需要注意步長(zhǎng)的設(shè)置,步長(zhǎng)直接關(guān)系到序列的性能,步長(zhǎng)的大小決定了一次批量取序列的大小。TIME序列使用了時(shí)間戳加機(jī)器編號(hào)的生成方式,好處是無(wú)需通訊即可保證唯一性。

DDM在運(yùn)維監(jiān)控方面的優(yōu)勢(shì)?

DDM: 采用傳統(tǒng)中間件運(yùn)維完全需要自己運(yùn)維,一般中間件專注核心功能,較少考慮運(yùn)維和圖形化界面的操作。DDM充分利用云化的優(yōu)勢(shì),提供了對(duì)實(shí)例、邏輯庫(kù)、邏輯表、分片算法等的全面圖形化界面操作。同時(shí)可以在線查看慢SQL等監(jiān)控內(nèi)容,方便對(duì)系統(tǒng)進(jìn)行針對(duì)性的性能調(diào)優(yōu)。

 

未來(lái)DDM會(huì)往什么方向發(fā)展?

DDM未來(lái)方向?qū)Ψ植际绞聞?wù)、分布式查詢能力增強(qiáng)、性能的優(yōu)化等,考慮到有些特性實(shí)現(xiàn)如果只從中間件層面實(shí)現(xiàn)會(huì)限制比較多。DDM會(huì)通過(guò)與數(shù)據(jù)庫(kù)底層的修改進(jìn)行配合,一起提供更優(yōu)秀的特性來(lái)滿足用戶的業(yè)務(wù)需求。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

本文題目:分布式數(shù)據(jù)庫(kù)中間件DDM的示例分析
本文來(lái)源:http://muchs.cn/article24/pdppje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)微信公眾號(hào)、定制網(wǎng)站、、網(wǎng)站導(dǎo)航、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化