12.06 數據庫也去中心化?深度解析分佈式數據庫

在雲計算、大數據等新技術的帶動下,越來越多的企業需要對結構化的數據進行查詢、分析、處理和更新。同時,隨著創新業務的不斷增加,業務的複雜及龐大的體量必然會產生錯綜複雜且規模巨大的結構化數據,這些都必然迫使企業對數據庫的需求指向大規模、高可靠、高擴展及高性能。

對任何企業而言,數據庫都是其應用的核心資源,如何選擇適合自身企業 IT 架構及業務的核心數據庫是每一個 CIO/CTO 必須面對的問題。

本文將從互聯網企業及傳統行業(銀行、保險等行業)兩個部分來具體分析和闡述,希望對大家有所幫助。

互聯網公司的主流是 MySQL ?

開源數據庫MySQL ,由於其自身特點和互聯網使用場景,在互聯網界非常受歡迎,有著極為廣泛的應用。

互聯網公司往往有高併發、大數據量等業務特點,同時為了在激烈的競爭中佔得先機,產品會不斷迭代,需要不斷推出新產品,並做大量的促銷運營活動,這些從技術角度來看是沒有辦法提前預知的,只能寄希望於 IT 的伸縮能力,所以互聯網公司對於系統的伸縮能力都有著執著的追求。

MySQL 之所以在互聯網圈子廣受歡迎,可以簡單歸納為以下幾點:

  • MySQL 雖然是開源軟件,但是簡單易用、具備極高的穩定性、功能也比較完善,且可以根據業務特點定製所需的存儲引擎,進行性能優化,從而適應自身業務。很多商用的數據庫軟件設計目標並沒有考慮互聯網業務經常面臨的高併發、海量用戶場景,無法滿足企業的基本需求。

  • 由於 MySQL 代碼完全開源,當企業的業務出現任何問題時,可以第一時間進行排查和響應,從而保證用戶體驗。而商用數據庫軟件的核心技術用戶無法深度掌握,很難有足夠快速的問題解決能力。

  • 將 MySQL 運行在標準的 X86 服務器上,硬件費用大大降低,同時也可以節省一大筆 License 費用。

MySQL 雖然有種種優勢,但 MySQL 也不是萬能的,一個複雜 SQL 或者大表 Join 就可能使 MySQL 負載過重,資源耗盡。同時 MySQL 自身也有一個很嚴重的缺點:沒有一個成熟的高可用和分佈式解決方案。

所以,大多數互聯網公司的選擇都是混合使用,當 MySQL 能解決問題時就用 MySQL,而一些對性能、安全性、可靠性要求更高的業務則使用商用數據庫軟件,然後再看有沒有機會去替換。

金融行業

金融行業絕大多數系統的數據存儲層都採用“小型機+商用數據庫+高端存儲陣列”的實現方式,隨著業務和技術的發展,這種方式逐漸暴露出一些問題。

  • 安全可控需求,監管機構從國家信息安全高度對銀行業的 IT 基礎設施提出了開源化、國產化、安全可控的要求。

  • 銀行業面臨著日趨嚴峻的 IT 成本控制壓力,而基於現行數據存儲層的實現方式,每個系統的數據存儲成本都以數百萬計。

  • 隨著電子銀行、網上銀行業務的創新、拓展,數據存儲層缺乏良好的可擴展性,難以應對應用層的高併發數據訪問。

  • 過去銀行採用高端的設備,比如使用小型機和大型存儲來保證數據庫的可用性。在擴展性方面,主要通過增加 CPU、內存、磁盤等方式提高處理能力。這種集中式架構,使得數據庫逐漸成為整體系統的瓶頸,越來越不適應海量數據對計算能力的巨大需求。

金融行業普遍面臨互聯網金融在技術和業務上帶來的新挑戰,高可用、高可靠、可擴展的大數據平臺和分佈式數據庫解決方案是金融行業的全新技術選擇,不但有利於金融行業提升業務創新能力和用戶體驗,同時增強了自身的技術儲備,以迎接互聯網時代的市場挑戰。

因此,對於銀行業來說,以「分佈式數據庫 + Hadoop 大數據平臺」解決方案來逐步替代現有關係型數據庫成為最佳選擇。

新一代分佈式關係型數據庫應運而生

分佈式數據庫是這些大型企業用戶(如電商、金融、製造、零售等)承載核心業務的重要技術選型方向之一,是幫助企業處理大規模結構化數據的重要技術平臺。為滿足用戶對分佈式數據庫的實際需求,同時幫助傳統企業將核心業務逐步向雲端遷移,青雲QingCloud 自主研發了新一代分佈式數據庫。

青雲的分佈式關係型數據庫 —— RadonDB

青雲QingCloud RadonDB 是基於 MySQL 研發的新一代分佈式關係型數據庫,規模可無限水平擴展,支持分佈式事務,具備金融級數據強一致性,滿足企業級核心數據庫對大容量、高併發、高可靠及高可用的苛刻要求。

數據庫也去中心化?深度解析分佈式數據庫

RadonDB 架構圖

如上圖所示,RadonDB 採用分佈式 SQL 節點 + 分佈式存儲節點的高可用分佈式架構,每個分區內採用一主多從的架構設計,數據多副本存儲,可自動實現故障秒級切換與瞬間生效。同時支持跨數據中心部署,全面保障服務高可用。

數據庫也去中心化?深度解析分佈式數據庫

存儲層由多個 Node 組成,每個 Node 負責部分數據存儲,同時在存儲節點內,通過 GTID + Raft + Semi-Sync-Replication 機制保障數據寫入的高度一致性。 底層硬件一般採用低成本的 X86 架構存儲服務器。

同時,存儲層採用一主多從的 MySQL 作為存儲引擎,這點與行業內其他的分佈式數據庫不同(Google Spanner)。 之所以選擇經典的 MySQL 作為存儲引擎,主要有以下幾點原因:

  • MySQL 使用廣泛,其可靠性和穩定性經過長期驗證;

  • 用戶的 MySQL 數據庫不需要進行太多修改,即可遷移至 RadonDB;

  • MySQL 不斷的演進,功能日益完善,如支持計算下推,數據就近計算原則;多索引寫原子保證;SQL 與 Storage 層數據傳輸最小化等等。

數據庫也去中心化?深度解析分佈式數據庫

如上圖所示,分佈式數據庫系統中的數據是相互關聯的,雖然每個小表(子表)都是分散的,但邏輯上是一個統一的整體,對上層應用來說,可視為一個集中式的數據庫系統。

數據庫也去中心化?深度解析分佈式數據庫

同時,小表(子表)可以動態漂移,隨著表的熱度和大小進行動態的擴容和伸縮,保證資源分配最優化。支持存儲節點無限水平擴展,從而提供可動態無限擴展的存儲容量。性能隨節點擴展而線性增長,輕鬆應對超大容量及超高併發請求帶來的性能挑戰。

除上述基本特徵外,RadonDB 還高度兼容 MySQL 語法,支持 HTAP 混合模式,可跨數據中心部署,支持智能化自動分表、平滑擴容及自動運維,擴容與故障切換時業務零中斷,無需人工干預;同時支持 HTAP 混合模式,並提供完善的服務監控、審計日誌及安全防護措施。

作為一款基於雲模式的大型分佈式數據庫服務,RadonDB 具備雲服務所有的彈性、敏捷、按需和輕運維特性。

寫在最後

希望 RadonDB 數據庫可以給行業從業者帶來更多的可能,包括金融行業新業務、新 IT 的建設,互聯網公司核心業務的高可靠、高性能等訴求。

未來,RadonDB 將會全部開源,希望可以有更多的夥伴加入進來,給行業帶來更多的驚喜。如果你對分佈式數據庫還有更多問題,12月12日,我們將會有一場線上發佈會,RadonDB 的研發工程師會與大家面對面進行交流,千萬不要錯過。

青雲QingCloud 下一代企業級雲架構 ——「全模雲」線上發佈會,期待你的報名。

http://t.cn/RYAz05V


分享到:


相關文章: