當(dāng)前位置:首頁(yè) >  科技 >  互聯(lián)網(wǎng) >  正文

數(shù)據(jù)庫(kù)選型解讀,分布式數(shù)據(jù)庫(kù)帶來(lái)的技術(shù)革命

 2018-05-15 16:37  來(lái)源: 互聯(lián)網(wǎng)   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

對(duì)所有企業(yè)來(lái)說(shuō),數(shù)據(jù)庫(kù)都是其 IT 系統(tǒng)的核心應(yīng)用。隨著企業(yè)的創(chuàng)新與轉(zhuǎn)型,業(yè)務(wù)日益增加與復(fù)雜,產(chǎn)生的數(shù)據(jù)量也越來(lái)越龐大,對(duì)數(shù)據(jù)庫(kù)也有了更高的要求。大規(guī)模、高可靠、高擴(kuò)展及高性能成為新一代數(shù)據(jù)庫(kù)的選型標(biāo)準(zhǔn)。

目前,業(yè)內(nèi)的數(shù)據(jù)庫(kù)選型基本可以分為兩類:第一,使用開(kāi)源數(shù)據(jù)庫(kù)自建,例如 MySQL;第二,傳統(tǒng)的商業(yè)數(shù)據(jù)庫(kù)。這兩種選型在不同場(chǎng)景應(yīng)用中都各自的優(yōu)劣,下面讓我們來(lái)簡(jiǎn)單分析一下。

互聯(lián)網(wǎng)公司的主流是 MySQL ?

開(kāi)源數(shù)據(jù)庫(kù) MySQL ,由于其自身特點(diǎn)和互聯(lián)網(wǎng)使用場(chǎng)景,在互聯(lián)網(wǎng)界非常受歡迎,有著極為廣泛的應(yīng)用。

互聯(lián)網(wǎng)公司往往有高并發(fā)、大數(shù)據(jù)量等業(yè)務(wù)特點(diǎn),同時(shí)為了在激烈的競(jìng)爭(zhēng)中占得先機(jī),產(chǎn)品會(huì)不斷迭代,需要不斷推出新產(chǎn)品,并做大量的促銷運(yùn)營(yíng)活動(dòng),這些從技術(shù)角度來(lái)看是沒(méi)有辦法提前預(yù)知的,只能寄希望于 IT 的伸縮能力,所以互聯(lián)網(wǎng)公司對(duì)于系統(tǒng)的伸縮能力都有著執(zhí)著的追求。

MySQL 之所以在互聯(lián)網(wǎng)圈子廣受歡迎,可以簡(jiǎn)單歸納為以下幾點(diǎn):

第一,MySQL 簡(jiǎn)單易用、具備極高的穩(wěn)定性、功能也比較完善,且具備商業(yè)軟件沒(méi)有的可定制化特點(diǎn),企業(yè)可以根據(jù)自身業(yè)務(wù)定制所需的存儲(chǔ)引擎,進(jìn)行性能優(yōu)化,從而適應(yīng)自身業(yè)務(wù)。

第二,由于 MySQL 代碼完全開(kāi)源,當(dāng)企業(yè)的業(yè)務(wù)出現(xiàn)任何問(wèn)題時(shí),可以第一時(shí)間進(jìn)行排查和響應(yīng),從而保證用戶體驗(yàn)。而商用數(shù)據(jù)庫(kù)軟件的核心技術(shù)用戶無(wú)法深度掌握,很難有足夠快速的問(wèn)題解決能力。

第三,將 MySQL 運(yùn)行在標(biāo)準(zhǔn)的 X86 服務(wù)器上,硬件費(fèi)用大大降低,同時(shí)也可以節(jié)省一大筆 License 費(fèi)用。

MySQL 雖然有種種優(yōu)勢(shì),但 MySQL 也不是萬(wàn)能的,一個(gè)復(fù)雜 SQL 或者大表 Join 就可能使 MySQL 負(fù)載過(guò)重,資源耗盡。同時(shí) MySQL 自身也有一個(gè)很嚴(yán)重的缺點(diǎn):沒(méi)有一個(gè)成熟的高可用和分布式解決方案。

所以,大多數(shù)互聯(lián)網(wǎng)公司的選擇都是混合使用,當(dāng) MySQL 能解決問(wèn)題時(shí)就用 MySQL,而一些對(duì)性能、安全性、可靠性要求更高的業(yè)務(wù)則使用商用數(shù)據(jù)庫(kù)軟件。

對(duì)于他們來(lái)說(shuō),需要一個(gè)開(kāi)源的分布式數(shù)據(jù)庫(kù)產(chǎn)品,來(lái)替代目前的商用數(shù)據(jù)庫(kù),進(jìn)一步節(jié)省成本。

金融行業(yè)的選擇是什么?

金融行業(yè)絕大多數(shù)系統(tǒng)的數(shù)據(jù)存儲(chǔ)層都采用『小型機(jī)+商用數(shù)據(jù)庫(kù)+高端存儲(chǔ)陣列』的實(shí)現(xiàn)方式,隨著業(yè)務(wù)和技術(shù)的發(fā)展,這種方式逐漸暴露出一些問(wèn)題。

第一,安全可控的需求。監(jiān)管機(jī)構(gòu)從國(guó)家信息安全高度對(duì)銀行業(yè)的 IT 基礎(chǔ)設(shè)施提出了開(kāi)源化、國(guó)產(chǎn)化、安全可控的要求。

第二,成本壓力的問(wèn)題。銀行業(yè)面臨著日趨嚴(yán)峻的 IT 成本控制壓力,而基于現(xiàn)行數(shù)據(jù)存儲(chǔ)層的實(shí)現(xiàn)方式,每個(gè)系統(tǒng)的數(shù)據(jù)存儲(chǔ)成本都以數(shù)百萬(wàn)計(jì)。

第三,擴(kuò)展性差。隨著電子銀行、網(wǎng)上銀行業(yè)務(wù)的創(chuàng)新、拓展,數(shù)據(jù)存儲(chǔ)層缺乏良好的可擴(kuò)展性,難以應(yīng)對(duì)應(yīng)用層的高并發(fā)數(shù)據(jù)訪問(wèn)。

第四,性能問(wèn)題。過(guò)去銀行采用高端的設(shè)備,比如使用小型機(jī)和大型存儲(chǔ)來(lái)保證數(shù)據(jù)庫(kù)的可用性。在擴(kuò)展性方面,主要通過(guò)增加 CPU、內(nèi)存、磁盤等方式提高處理能力。這種集中式架構(gòu),使得數(shù)據(jù)庫(kù)逐漸成為整體系統(tǒng)的瓶頸,越來(lái)越不適應(yīng)海量數(shù)據(jù)對(duì)計(jì)算能力的巨大需求。

金融行業(yè)普遍面臨互聯(lián)網(wǎng)金融在技術(shù)和業(yè)務(wù)上帶來(lái)的新挑戰(zhàn),高可用、高可靠、可擴(kuò)展的大數(shù)據(jù)平臺(tái)和分布式數(shù)據(jù)庫(kù)解決方案是金融行業(yè)的全新技術(shù)選擇,不但有利于金融行業(yè)提升業(yè)務(wù)創(chuàng)新能力和用戶體驗(yàn),同時(shí)增強(qiáng)了自身的技術(shù)儲(chǔ)備,以迎接互聯(lián)網(wǎng)時(shí)代的市場(chǎng)挑戰(zhàn)。

因此,對(duì)于銀行業(yè)來(lái)說(shuō),以『分布式數(shù)據(jù)庫(kù) + Hadoop 大數(shù)據(jù)平臺(tái)』解決方案來(lái)逐步替代現(xiàn)有關(guān)系型數(shù)據(jù)庫(kù)成為最佳選擇。

新一代分布式關(guān)系型數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生

無(wú)論互聯(lián)網(wǎng)企業(yè)還是傳統(tǒng)企業(yè),他們都需要一款分布式數(shù)據(jù)庫(kù)來(lái)解決處理大規(guī)模結(jié)構(gòu)化數(shù)據(jù)的需求,既要追求最大程度的擴(kuò)展性,同時(shí)也要兼顧性能和可靠性,以及對(duì)傳統(tǒng)應(yīng)用的兼容,以替代目前基于開(kāi)源數(shù)據(jù)庫(kù)自建的數(shù)據(jù)庫(kù)和商業(yè)數(shù)據(jù)庫(kù)方案。

所以,為滿足大型企業(yè)用戶(如電商、金融、制造、零售等)處理大規(guī)模結(jié)構(gòu)化數(shù)據(jù)的要求,同時(shí)幫助傳統(tǒng)企業(yè)將核心業(yè)務(wù)逐步向云端遷移,青云QingCloud 自主研發(fā)了具備大規(guī)模、高可靠、高擴(kuò)展及高性能特點(diǎn)的新一代分布式數(shù)據(jù)庫(kù)。

青云的分布式關(guān)系型數(shù)據(jù)庫(kù) —— RadonDB

青云QingCloud RadonDB 是基于 MySQL 研發(fā)的新一代分布式關(guān)系型數(shù)據(jù)庫(kù),規(guī)模可無(wú)限水平擴(kuò)展,支持分布式事務(wù),具備金融級(jí)數(shù)據(jù)強(qiáng)一致性,滿足企業(yè)級(jí)核心數(shù)據(jù)庫(kù)對(duì)大容量、高并發(fā)、高可靠及高可用的苛刻要求。

如上圖所示,RadonDB 采用分布式 SQL 節(jié)點(diǎn) + 分布式存儲(chǔ)節(jié)點(diǎn)的高可用分布式架構(gòu),每個(gè)分區(qū)內(nèi)采用一主多從的架構(gòu)設(shè)計(jì),數(shù)據(jù)多副本存儲(chǔ),可自動(dòng)實(shí)現(xiàn)故障秒級(jí)切換與瞬間生效。同時(shí)支持跨數(shù)據(jù)中心部署,全面保障服務(wù)高可用。

存儲(chǔ)層由多個(gè) Node 組成,每個(gè) Node 負(fù)責(zé)部分?jǐn)?shù)據(jù)存儲(chǔ),同時(shí)在存儲(chǔ)節(jié)點(diǎn)內(nèi),通過(guò) GTID + Raft + Semi-Sync-Replication 機(jī)制保障數(shù)據(jù)寫(xiě)入的高度一致性。 底層硬件一般采用低成本的 X86 架構(gòu)存儲(chǔ)服務(wù)器。

同時(shí),存儲(chǔ)層采用一主多從的 MySQL 作為存儲(chǔ)引擎,這點(diǎn)與行業(yè)內(nèi)其他的分布式數(shù)據(jù)庫(kù)不同(Google Spanner)。之所以選擇經(jīng)典的 MySQL 作為存儲(chǔ)引擎,主要有以下幾點(diǎn)原因:

1:MySQL 使用廣泛,其可靠性和穩(wěn)定性經(jīng)過(guò)長(zhǎng)期驗(yàn)證;

2:用戶的 MySQL 數(shù)據(jù)庫(kù)不需要進(jìn)行太多修改,即可遷移至 RadonDB;

3:MySQL 不斷的演進(jìn),功能日益完善,如支持計(jì)算下推,數(shù)據(jù)就近計(jì)算原則;多索引寫(xiě)原子保證;SQL 與 Storage 層數(shù)據(jù)傳輸最小化等等。

如上圖所示,分布式數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)是相互關(guān)聯(lián)的,雖然每個(gè)子表都是分散的,但邏輯上是一個(gè)統(tǒng)一的整體,對(duì)上層應(yīng)用來(lái)說(shuō),可視為一個(gè)集中式的數(shù)據(jù)庫(kù)系統(tǒng)。

同時(shí),子表可以動(dòng)態(tài)漂移,隨著表的熱度和大小進(jìn)行動(dòng)態(tài)的擴(kuò)容和伸縮,保證資源分配最優(yōu)化。支持存儲(chǔ)節(jié)點(diǎn)無(wú)限水平擴(kuò)展,從而提供可動(dòng)態(tài)無(wú)限擴(kuò)展的存儲(chǔ)容量。性能隨節(jié)點(diǎn)擴(kuò)展而線性增長(zhǎng),輕松應(yīng)對(duì)超大容量及超高并發(fā)請(qǐng)求帶來(lái)的性能挑戰(zhàn)。

除上述基本特征外,RadonDB 還高度兼容 MySQL 語(yǔ)法,支持 HTAP 混合模式,可跨數(shù)據(jù)中心部署,支持智能化自動(dòng)分表、平滑擴(kuò)容及自動(dòng)運(yùn)維,擴(kuò)容與故障切換時(shí)業(yè)務(wù)零中斷,無(wú)需人工干預(yù);同時(shí)支持 HTAP 混合模式,并提供完善的服務(wù)監(jiān)控、審計(jì)日志及安全防護(hù)措施。

作為一款基于云模式的大型分布式數(shù)據(jù)庫(kù)服務(wù),RadonDB 具備云服務(wù)所有的彈性、敏捷、按需和輕運(yùn)維特性。

寫(xiě)在最后

希望 RadonDB 數(shù)據(jù)庫(kù)可以給行業(yè)從業(yè)者帶來(lái)更多的可能,包括金融行業(yè)新業(yè)務(wù)、新 IT 的建設(shè),互聯(lián)網(wǎng)公司核心業(yè)務(wù)的高可靠、高性能等訴求。未來(lái),RadonDB 將會(huì)全部開(kāi)源,希望可以有更多的伙伴加入進(jìn)來(lái),給行業(yè)帶來(lái)更多的驚喜。

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)文章

熱門排行

信息推薦