歡迎光臨
每天分享高質量文章

微服務架構下,分散式資料庫如何支撐千億級資料?

如今,大型企業的應用平臺正在向微服務架構進行轉型。在微服務架構下,應用程式和資料庫等底層平臺的關係將會被重構。

作為新一代分散式資料庫,其架構與功能特性需要保證在與傳統資料庫全相容的基礎上,擁抱微服務與雲端計算框架。因此,分散式資料庫對於分散式交易與ACID必須保證與傳統技術完全相容。同時,在面向微服務應用開發與雲端計算基礎架構時,新一代分散式資料庫必須支援彈性擴張、資源隔離、多租戶、可配置一致性、多樣式(支援各類SQL協議)、叢集內可配置容災策略等一系列功能。

傳統單點資料庫的容量瓶頸,僅僅是分散式資料庫所解決的問題之一。更重要的是在未來微服務化應用開發以及雲化平臺的趨勢下,應用不再以“煙囪式”的中介軟體加資料庫樣式進行構建,而是採用數千甚至上萬的微服務程式構建成的複雜網狀模型。因此,分散式資料庫需要滿足以下能力,才能夠滿足上層應用的彈性擴充套件、高併發、高吞吐量、與靈活敏捷的需求。

在這些技術需求驅動下,分散式資料庫核心技術能力分為兩個方面,一方面是對傳統技術的相容,包括:

  • 完整的ACID支援,事務和一致性保證;
  • SQL的完整支援,傳統資料庫如MySQL/PostgreSQL的語法完全相容。

 

另一方面,則是技術創新,包括:

  • 分散式與擴充套件性,應對資料量的變化,實現儲存層和計算層的彈性擴充套件;
  • 多樣式訪問介面,支援多型別資料管理和多種樣式的訪問介面;
  • HTAP交易/分析混合處理能力,複雜業務需求下,實現資料的物理隔離,互不幹擾。

作為一款金融級分散式關係型資料庫,SequoiaDB巨杉資料庫的分散式資料庫架構和麵向微服務的雲化產品形態,已經幫助包括民生銀行、恆豐銀行在內的多家大型金融客戶實現了大量業務系統的底層資料庫雲化轉型升級。

目前,巨杉資料庫在銀行生產系統單機群最大物理節點數達到135個,單叢集最大儲存容量超過2.1 PB,單叢集最大管理資料條數1318億條。

SequoiaDB巨杉資料庫作為一款金融級的分散式關係型資料庫,在企業客戶雲化架構轉型過程中,提供了多種重要技術能力。

資料儲存資源池化

SequoiaDB資料儲存引擎採用原生分散式架構,資料完全打散在分散式節點間儲存,自動化資料分佈和管理,資料可以按需靈活擴充套件。

SequoiaDB採用分片技術為系統提供了橫向擴充套件機制,其分片過程對於應用程式來說完全透明。該機制解決了單臺伺服器硬體資源(如記憶體、CPU、磁碟 I/O)受限的問題,並不會增加應用程式開發的複雜性。巨杉資料庫透過原生分散式架構,可以輕鬆實現PB級別資料管理,目前生產環境最大支援超過1500個節點叢集。

SequoiaDB巨杉資料庫儲存引擎也實現了multi-model多模資料管理,支援非結構化、結構化和半結構化資料全改寫並統一管理。SequoiaDB的多模引擎設計讓資料庫平臺場景更多樣,也能符合雲資料架構下對於多樣化業務資料的統一管理與運維要求。

同時,在一個大型叢集中,SequoiaDB提供了多維度、多層級的邏輯與物理隔離能力。在一個典型的資料資源池型別基礎資料服務平臺(DBaas,DataBase As A Service)中,SequoiaDB巨杉資料庫能夠同時服務於成百上千個不同SLA服務級別、優先順序、業務特性、與資料量的應用程式,並保證應用程式之間的資料邏輯與物理隔離。

SequoiaDB提供的“資料域(Domain)”特性,能夠將整個叢集在物理裝置層面進行隔離,確保不同的表、表空間、與資料庫實體坐落於獨立的硬體裝置上,保證高優先順序的聯機交易應用與後臺統計分析相互隔離互不幹擾。

資料庫實體化

SequoiaDB巨杉資料庫支援資料庫服務實體化。

針對微服務應用架構,使用者可以在同一個叢集中建立成百上千個不同的關係型資料庫實體。資料庫實體的訪問與使用方式和傳統關係型資料庫100%相容,同時其底層所使用的資料從邏輯上完全獨立,每個實體擁有自己獨立的許可權管理、資料管控、甚至可以選擇部署在獨立的硬體環境或共享裝置中。

目前SequoiaDB巨杉資料庫支援使用者建立 MySQL、PostgreSQL 與 SparkSQL 實體,同時還提供了JSON、S3物件儲存以及Posix檔案系統實體,充分滿足使用者對於結構化、半結構化、以及非結構化資料的需求。

從應用程式開發者與DBA的角度看,SequoiaDB巨杉資料庫所提供的關係型資料庫實體,與傳統MySQL、PostgreSQL和SparkSQL保持全相容。例如,在SequoiaDB巨杉資料庫中的MySQL實體中,其所有的增刪改查語法、檢視、觸發器、事務、甚至訪問計劃都與傳統MySQL保持一致。

作為分散式資料庫,SequoiaDB巨杉資料庫的SQL實體使用者不需要關心底層的資料到底被分散在一臺還是多臺裝置中。使用者可以簡單建立一個分割槽表,向其中寫入上億條記錄,其資料將會被自動分散在不同的物理裝置中,對於應用程式根本無需關註分庫分表,資料庫自動提供分散式事務以及分散式訪問等能力。

雙活容災與資料安全

雙活容災即災備系統中使主生產端資料庫和備機端資料庫同時線上執行,處於可讀可寫狀態的技術。在銀行的交易系統中,雙活容災能力不僅保證資料不丟失,也保證系統在遭遇事故時能夠短時間內重新上線。在正常情況下,雙活架構的兩個資料中心都能夠同時提供業務的讀寫服務,而當一個中心宕機後,所有前端應用可以立刻切換至依然存活的資料中心繼續使用。

SequoiaDB巨杉資料庫在核心層面實現了多種容災方式,包括同城雙活、同城雙中心、同城三中心、兩地三中心、與三地五中心等容災策略。透過使用SequoiaDB巨杉資料庫的容災與高可用機制,資料中心內的伺服器故障可以保證RTO與RPO均為零,而整個資料中心或同城網路故障也可以做到秒級RTO、RPO=0。

關於SequoiaDB巨杉資料庫

 

巨杉資料庫專註新一代分散式資料庫技術研發,自2011年成立以來,堅持從零開始打造分散式開源資料庫引擎,是中國首家連續兩年入選 Gartner 資料庫報告的資料庫廠商。

 

巨杉資料庫的主要產品包括 SequoiaDB 分散式關係型資料庫與 SequoiaCM 企業內容管理軟體,企業級應用場景包括分散式線上交易、資料中臺、分散式內容管理等。

目前巨杉資料庫已在超過50家500強級別的大型商業銀行核心生產業務上線,企業使用者總數超過1000家。

    已同步到看一看
    贊(0)

    分享創造快樂