怎么解析RadonDB分布式數(shù)據(jù)庫核心技術(shù)與實(shí)現(xiàn),相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
10年積累的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)制作后付款的網(wǎng)站建設(shè)流程,更有昆玉免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
摘要:隨著數(shù)據(jù)規(guī)模的逐步擴(kuò)大,存儲(chǔ)和運(yùn)維成本逐漸增加,企業(yè)對數(shù)據(jù)庫的要求也逐漸提高。有人認(rèn)為以MySQL為代表的傳統(tǒng)數(shù)據(jù)庫已經(jīng)過時(shí),不能滿足數(shù)據(jù)爆炸時(shí)代企業(yè)的要求;以NOSQL為代表的新型數(shù)據(jù)庫仍有局限性,不具備ACID特性,很難滿足企業(yè)對核心業(yè)務(wù)數(shù)據(jù)的嚴(yán)苛需求。此次分享的RadonDB是一款將分布式一致性協(xié)議Raft與MySQL相結(jié)合的新一代分布式關(guān)系型數(shù)據(jù)庫。RadonDB的最大特點(diǎn)是結(jié)合兩類數(shù)據(jù)庫的優(yōu)點(diǎn),讓DBA無縫地從傳統(tǒng)的、單機(jī)時(shí)代的MySQL過渡到云原生的、無限擴(kuò)展的分布式關(guān)系型數(shù)據(jù)庫。
RadonDB架構(gòu)圖
RadonDB定位是新一代分布式關(guān)系數(shù)據(jù)庫,在今天這個(gè)云計(jì)算快速發(fā)展的時(shí)代,我們更愿意稱它是一個(gè)云原生數(shù)據(jù)庫,云原生數(shù)據(jù)庫的天然屬性是分布式、可擴(kuò)展、高可用、強(qiáng)一致。下面的MyNewSQL,是因?yàn)槲覀儼袽ySQL和NewSQL融合起來,來滿足以上的幾個(gè)特性。
當(dāng)中一個(gè)請求到來之后,SQL層會(huì)把這個(gè)請求解析成分布式的執(zhí)行計(jì)劃,然后,把這個(gè)SQL在后端的存儲(chǔ)層并行的執(zhí)行。而且它還會(huì)進(jìn)行二次運(yùn)算,就是Orderby/limit/groupby/aggration/join….等等。它還是一個(gè)無中心化的設(shè)計(jì),部署起來比較方便,容易擴(kuò)展,這是整個(gè)SQL層的一個(gè)設(shè)計(jì)。
Storage Nodes
再看存儲(chǔ)層,存儲(chǔ)層是RadonDB里一個(gè)比較新穎的設(shè)計(jì),也是我們定位為在新一代分布式數(shù)據(jù)庫的一個(gè)原因。
第一個(gè)挑戰(zhàn),怎么快速選主?
第二個(gè)挑戰(zhàn),選出新的主后,數(shù)據(jù)怎么快速地回放?
第三個(gè)挑戰(zhàn),數(shù)據(jù)回放完,數(shù)據(jù)怎么保證不丟失? RadonDB是怎么解決的?
對于第一個(gè)挑戰(zhàn),我們使用了Raft協(xié)議,大家要知道,Raft協(xié)議主要干兩件事,第一個(gè)就是選主,第二個(gè)是數(shù)據(jù)同步。在RadonDB里只使用Raft進(jìn)行選主,當(dāng)主掛掉之后,我們使用Raft選出新的主,然后數(shù)據(jù)同步。我們是基于MySQL原生的FGTID機(jī)制和并行復(fù)制這些特性進(jìn)行快速回放。
保證數(shù)據(jù)不丟失,我們還是基于MySQL,并使用了MySQL的Semi-Sync機(jī)制,當(dāng)用戶寫到主副本時(shí),首先,它要到達(dá)一個(gè)從副本,從副本收到之后,再反饋給客戶端,這樣就時(shí)刻地保證了一個(gè)從副本與主副本的數(shù)據(jù)完全一致,從節(jié)點(diǎn)被選入新的主節(jié)點(diǎn),保證了這個(gè)數(shù)據(jù)不丟失。
當(dāng)選入新的主節(jié)點(diǎn)之后,RadonDB的Log 并行復(fù)制還是基于MySQL的機(jī)制,并行復(fù)制,快速地回放,這就等于實(shí)現(xiàn)了把Raft選主和Log 并行復(fù)制結(jié)合。原生態(tài)Raft協(xié)議里這兩個(gè),Raft Log并行回放是比較困難的,但是,我們結(jié)合MySQL就很好地完成了。而且,這三個(gè)副本是一個(gè)無中心化的設(shè)計(jì),只要我們可達(dá),它的部署比較靈活。
擴(kuò)容
RadonDB的底層是全部基于MySQL,所以在擴(kuò)容的時(shí)候也比較方便,因?yàn)镸ySQL有一套工具和機(jī)制。
大家可以看到上圖,其實(shí)MySQL Xa機(jī)制總共有5個(gè)步驟,但是到RadonDB里,我們進(jìn)行了抽象,就是進(jìn)行了封裝。我們實(shí)現(xiàn)了快照的隔離級(jí)別,實(shí)現(xiàn)了Snapshot Isolation事務(wù)隔離級(jí)別。
Binlog
另外,RadonDB支持Binlog,大家可能認(rèn)為一個(gè)分布式數(shù)據(jù)庫,就是里面需要放一些海量的數(shù)據(jù),但數(shù)據(jù)一旦進(jìn)入你的分布數(shù)據(jù)庫,怎么能出來?就比較麻煩,因此, RadonDB提供一個(gè)Binlog機(jī)制,就是讓數(shù)據(jù)能快速的同步處理。
OLTP + OLAP
比如說,我們有一個(gè)OLAP的集群,可設(shè)置為RadonDB的Binlog,Binlog是實(shí)時(shí)地更新,這就完成了一個(gè)異構(gòu)化的過程和數(shù)據(jù)流出,而且是實(shí)時(shí)的。
大家也看到,在剛才的架構(gòu)圖里,右下角有一個(gè)計(jì)算節(jié)點(diǎn),其實(shí),我們的計(jì)算節(jié)點(diǎn)就是通過這種機(jī)制跟RadonDB的數(shù)據(jù)進(jìn)行同步。這樣,就把OLTP和OLAP結(jié)合了起來,當(dāng)用戶一個(gè)比較復(fù)雜的查詢到達(dá)RadonDB之后,RadonDB會(huì)根據(jù)SQL的模式發(fā)到TP節(jié)點(diǎn)還是AP節(jié)點(diǎn),前端的用戶是沒有感知的,這就做到了一些資源的隔離。當(dāng)然了,這也有一個(gè)缺點(diǎn),數(shù)據(jù)可能是兩份,但目前,我們是通過異構(gòu)化、列式存儲(chǔ)來進(jìn)行的,高壓縮做這種機(jī)制。
審計(jì)日志
另外,RadonDB還提供了一些審計(jì)日志這些功能,為了方便大家對業(yè)務(wù)進(jìn)行一些審計(jì),而且審計(jì)機(jī)制還可以定位一些慢查詢SQL,因?yàn)榉植际降臄?shù)據(jù)庫,節(jié)點(diǎn)比較多,所以定位一個(gè)SQL會(huì)比較復(fù)雜,有了審計(jì)日志,大家可以定位一些慢的SQL。
備份和恢復(fù)
RadonDB提供了一整套備份和恢復(fù)的工具,可以讓用戶快速地把數(shù)據(jù)流進(jìn)去,流出來,比原生的要快很多。
性能
mysql> show processlist;
第一條命是,MySQL常用的,表示用戶的鏈接到RadonDB的狀態(tài)。
mysql> show txnz;
第二個(gè)命令是,分布式事務(wù)在哪個(gè)階段執(zhí)行,耗時(shí)多少,這個(gè)都可以很清楚地看到。
mysql> show queryz;
最后一個(gè)命令,具體哪些子句落到哪些節(jié)點(diǎn),甚至耗時(shí)多少,比如說,某個(gè)節(jié)點(diǎn)有一些問題,都可以從這個(gè)上面反映出來,比較靈活。
看完上述內(nèi)容,你們掌握怎么解析RadonDB分布式數(shù)據(jù)庫核心技術(shù)與實(shí)現(xiàn)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)頁題目:怎么解析RadonDB分布式數(shù)據(jù)庫核心技術(shù)與實(shí)現(xiàn)
文章網(wǎng)址:http://aaarwkj.com/article20/iipdjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、響應(yīng)式網(wǎng)站、服務(wù)器托管、小程序開發(fā)、全網(wǎng)營銷推廣、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)