對所有企業(yè)來說,數據庫都是其 IT 系統(tǒng)的核心應用。隨著企業(yè)的創(chuàng)新與轉型,業(yè)務日益增加與復雜,產生的數據量也越來越龐大,對數據庫也有了更高的要求。大規(guī)模、高可靠、高擴展及高性能成為新一代數據庫的選型標準。
目前,業(yè)內的數據庫選型基本可以分為兩類:第一,使用開源數據庫自建,例如 MySQL;第二,傳統(tǒng)的商業(yè)數據庫。這兩種選型在不同場景應用中都各自的優(yōu)劣,下面讓我們來簡單分析一下。
互聯(lián)網公司的主流是 MySQL ?
開源數據庫 MySQL ,由于其自身特點和互聯(lián)網使用場景,在互聯(lián)網界非常受歡迎,有著極為廣泛的應用。
互聯(lián)網公司往往有高并發(fā)、大數據量等業(yè)務特點,同時為了在激烈的競爭中占得先機,產品會不斷迭代,需要不斷推出新產品,并做大量的促銷運營活動,這些從技術角度來看是沒有辦法提前預知的,只能寄希望于 IT 的伸縮能力,所以互聯(lián)網公司對于系統(tǒng)的伸縮能力都有著執(zhí)著的追求。
MySQL 之所以在互聯(lián)網圈子廣受歡迎,可以簡單歸納為以下幾點:
第一,MySQL 簡單易用、具備極高的穩(wěn)定性、功能也比較完善,且具備商業(yè)軟件沒有的可定制化特點,企業(yè)可以根據自身業(yè)務定制所需的存儲引擎,進行性能優(yōu)化,從而適應自身業(yè)務。
第二,由于 MySQL 代碼完全開源,當企業(yè)的業(yè)務出現(xiàn)任何問題時,可以第一時間進行排查和響應,從而保證用戶體驗。而商用數據庫軟件的核心技術用戶無法深度掌握,很難有足夠快速的問題解決能力。
第三,將 MySQL 運行在標準的 X86 服務器上,硬件費用大大降低,同時也可以節(jié)省一大筆 License 費用。
MySQL 雖然有種種優(yōu)勢,但 MySQL 也不是萬能的,一個復雜 SQL 或者大表 Join 就可能使 MySQL 負載過重,資源耗盡。同時 MySQL 自身也有一個很嚴重的缺點:沒有一個成熟的高可用和分布式解決方案。
所以,大多數互聯(lián)網公司的選擇都是混合使用,當 MySQL 能解決問題時就用 MySQL,而一些對性能、安全性、可靠性要求更高的業(yè)務則使用商用數據庫軟件。
對于他們來說,需要一個開源的分布式數據庫產品,來替代目前的商用數據庫,進一步節(jié)省成本。
金融行業(yè)的選擇是什么?
金融行業(yè)絕大多數系統(tǒng)的數據存儲層都采用『小型機+商用數據庫+高端存儲陣列』的實現(xiàn)方式,隨著業(yè)務和技術的發(fā)展,這種方式逐漸暴露出一些問題。
第一,安全可控的需求。監(jiān)管機構從國家信息安全高度對銀行業(yè)的 IT 基礎設施提出了開源化、國產化、安全可控的要求。
第二,成本壓力的問題。銀行業(yè)面臨著日趨嚴峻的 IT 成本控制壓力,而基于現(xiàn)行數據存儲層的實現(xiàn)方式,每個系統(tǒng)的數據存儲成本都以數百萬計。
第三,擴展性差。隨著電子銀行、網上銀行業(yè)務的創(chuàng)新、拓展,數據存儲層缺乏良好的可擴展性,難以應對應用層的高并發(fā)數據訪問。
第四,性能問題。過去銀行采用高端的設備,比如使用小型機和大型存儲來保證數據庫的可用性。在擴展性方面,主要通過增加 CPU、內存、磁盤等方式提高處理能力。這種集中式架構,使得數據庫逐漸成為整體系統(tǒng)的瓶頸,越來越不適應海量數據對計算能力的巨大需求。
金融行業(yè)普遍面臨互聯(lián)網金融在技術和業(yè)務上帶來的新挑戰(zhàn),高可用、高可靠、可擴展的大數據平臺和分布式數據庫解決方案是金融行業(yè)的全新技術選擇,不但有利于金融行業(yè)提升業(yè)務創(chuàng)新能力和用戶體驗,同時增強了自身的技術儲備,以迎接互聯(lián)網時代的市場挑戰(zhàn)。
因此,對于銀行業(yè)來說,以『分布式數據庫 + Hadoop 大數據平臺』解決方案來逐步替代現(xiàn)有關系型數據庫成為最佳選擇。
新一代分布式關系型數據庫應運而生
無論互聯(lián)網企業(yè)還是傳統(tǒng)企業(yè),他們都需要一款分布式數據庫來解決處理大規(guī)模結構化數據的需求,既要追求最大程度的擴展性,同時也要兼顧性能和可靠性,以及對傳統(tǒng)應用的兼容,以替代目前基于開源數據庫自建的數據庫和商業(yè)數據庫方案。
所以,為滿足大型企業(yè)用戶(如電商、金融、制造、零售等)處理大規(guī)模結構化數據的要求,同時幫助傳統(tǒng)企業(yè)將核心業(yè)務逐步向云端遷移,青云QingCloud 自主研發(fā)了具備大規(guī)模、高可靠、高擴展及高性能特點的新一代分布式數據庫。
青云的分布式關系型數據庫 —— RadonDB
青云QingCloud RadonDB 是基于 MySQL 研發(fā)的新一代分布式關系型數據庫,規(guī)??蔁o限水平擴展,支持分布式事務,具備金融級數據強一致性,滿足企業(yè)級核心數據庫對大容量、高并發(fā)、高可靠及高可用的苛刻要求。
如上圖所示,RadonDB 采用分布式 SQL 節(jié)點 + 分布式存儲節(jié)點的高可用分布式架構,每個分區(qū)內采用一主多從的架構設計,數據多副本存儲,可自動實現(xiàn)故障秒級切換與瞬間生效。同時支持跨數據中心部署,全面保障服務高可用。
存儲層由多個 Node 組成,每個 Node 負責部分數據存儲,同時在存儲節(jié)點內,通過 GTID + Raft + Semi-Sync-Replication 機制保障數據寫入的高度一致性。 底層硬件一般采用低成本的 X86 架構存儲服務器。
同時,存儲層采用一主多從的 MySQL 作為存儲引擎,這點與行業(yè)內其他的分布式數據庫不同(Google Spanner)。之所以選擇經典的 MySQL 作為存儲引擎,主要有以下幾點原因:
1:MySQL 使用廣泛,其可靠性和穩(wěn)定性經過長期驗證;
2:用戶的 MySQL 數據庫不需要進行太多修改,即可遷移至 RadonDB;
3:MySQL 不斷的演進,功能日益完善,如支持計算下推,數據就近計算原則;多索引寫原子保證;SQL 與 Storage 層數據傳輸最小化等等。
如上圖所示,分布式數據庫系統(tǒng)中的數據是相互關聯(lián)的,雖然每個子表都是分散的,但邏輯上是一個統(tǒng)一的整體,對上層應用來說,可視為一個集中式的數據庫系統(tǒng)。
同時,子表可以動態(tài)漂移,隨著表的熱度和大小進行動態(tài)的擴容和伸縮,保證資源分配最優(yōu)化。支持存儲節(jié)點無限水平擴展,從而提供可動態(tài)無限擴展的存儲容量。性能隨節(jié)點擴展而線性增長,輕松應對超大容量及超高并發(fā)請求帶來的性能挑戰(zhàn)。
除上述基本特征外,RadonDB 還高度兼容 MySQL 語法,支持 HTAP 混合模式,可跨數據中心部署,支持智能化自動分表、平滑擴容及自動運維,擴容與故障切換時業(yè)務零中斷,無需人工干預;同時支持 HTAP 混合模式,并提供完善的服務監(jiān)控、審計日志及安全防護措施。
作為一款基于云模式的大型分布式數據庫服務,RadonDB 具備云服務所有的彈性、敏捷、按需和輕運維特性。
寫在最后
希望 RadonDB 數據庫可以給行業(yè)從業(yè)者帶來更多的可能,包括金融行業(yè)新業(yè)務、新 IT 的建設,互聯(lián)網公司核心業(yè)務的高可靠、高性能等訴求。未來,RadonDB 將會全部開源,希望可以有更多的伙伴加入進來,給行業(yè)帶來更多的驚喜。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!