資料庫選型解讀,分散式資料庫帶來的技術革命

青雲QingCloud發表於2017-12-10

對所有企業來說,資料庫都是其 IT 系統的核心應用。隨著企業的創新與轉型,業務日益增加與複雜,產生的資料量也越來越龐大,對資料庫也有了更高的要求。大規模、高可靠、高擴充套件及高效能成為新一代資料庫的選型標準。

目前,業內的資料庫選型基本可以分為兩類:第一,使用開源資料庫自建,例如 MySQL;第二,傳統的商業資料庫。這兩種選型在不同場景應用中都各自的優劣,下面讓我們來簡單分析一下。

網際網路公司的主流是 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 採用分散式 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 的研發工程師會與大家面對面進行交流,千萬不要錯過。

12 月 12 日 14:00 - 16:00,不見不散~

?點選預約未來

相關文章