上週五(7月12日)巨杉數據庫參與了由獲得App主辦八里莊技術沙龍活動,分享主題是關於分佈式數據庫架構與實戰。數據庫
如下就是根據巨杉數據庫現場分享的內容進行的分享實錄整理。安全
巨杉數據庫簡介架構
巨杉,專一新一代分佈式數據庫技術研發,自2011年成立以來,堅持從零開始打造分佈式開源數據庫引擎,是中國首家連續兩年入選 Gartner 數據庫報告的數據庫廠商。併發
巨杉數據庫的主要產品包括 SequoiaDB 分佈式關係型數據庫與 SequoiaCM 企業內容管理軟件,應用場景包括分佈式在線交易、數據中臺、分佈式內容管理等。運維
目前,巨杉數據庫已在近百家大型商業銀行核心生產業務上線,並普遍應用於金融、電信、政府、互聯網、交通等領域,企業用戶總數超過1000家。分佈式
數據庫應如何應對微服務發展趨勢微服務
不少企業內部的應用開發都在從傳統中間件加數據庫的「煙囪式」開發,向微服務架構轉型。而在微服務體系架構中,幾乎每一個微服務都須要提供數據持久化的能力,而用戶也但願每一個微服務所承載的數據量可以無限的彈性擴張。可是,在採用微服務架構的過程當中,每一個微服務使用自身獨立的數據庫存儲又會使過去集中在一個地方的數據分散到不少不一樣的設備中,形成整個IT架構的數據嚴重碎片化。高併發
實際上,當企業用戶採用微服務體系架構的時候,從數據管理的角度,業界有兩種作法。學習
第一種:就是對應用程序進行微服務改造,底層數據庫使用傳統集中式數據庫進行存儲。這種作法學習成本也較低,其存在數據緊耦合,沒法彈性擴張,以及可能存在單點故障等問題。視頻
第二種:每一組微服務對應一個獨立的小數據庫,每每使用MySQL或PostgreSQL,業界使用較多的。這種機制可以解決集中式存儲的問題,可是也帶來了新的挑戰,包括數據極度碎片化,在微服務之間沒法共享,運維成本極其高昂。
兩種辦法都不能很好的解決微服務下數據存儲管理的問題,所以分佈式數據庫就是要解決上述的兩個問題。第一就是針對每一個微服務作到數據彈性擴張,第二就是對整個企業IT作到數據的統一治理從而避免碎片化存儲。
聯機交易須要什麼樣的分佈式數據庫
聯機交易數據庫特性
適合微服務的分佈式數據庫都應該具備特性,主要應該從兩大維度。一是對傳統技術的兼容,二是技術和架構的創新。
傳統技術的兼容方面,必須支持ACID和SQL的完整性。
重新技術的前瞻性來看,首先,分佈式數據庫的核心價值在於數據庫資源池在保證與傳統數據庫100%兼容的基礎上,必須知足分佈式彈性擴張,當資源池裏面空間和計算能力不足時,須要經過動態增長計算存儲節點的方式進行擴容。
其次,你們採用的開發流程、SQL標準、以及安全策略各不相同,所以分佈式數據庫必須可以支持多種模式的訪問接口。
最後,HTAP,即交易分析混合處理能力。聯機交易數據與實時數據分析在資源池內進行資源隔離,對同一份數據庫訪問並能夠作到互不干擾。適合微服務的數據庫必須有較強的交易分析混合處理能力。
分佈式數據庫架構及關鍵特性
巨杉數據庫實例化架構
要打造適合微服務架構的數據庫,巨杉數據庫採用了計算存儲分離的架構。其中存儲層採用自研的原生分佈式數據庫引擎,上層計算層則能夠建立成百上千個數據庫實例,同時每一個數據庫實例對應用徹底透明,不需感知。如圖5所示。
計算與存儲分離架構
對於計算和存儲分離,把分佈式存儲層展開,SeuqoiaDB分佈式存儲引擎有不少節點角色,其中有協調節點編目節點和數據節點和編目節點。協調節點是數據路由,數據存儲在數據節點。編目節點保存整個數據集羣系統信息。數據節點把數據打散到不一樣的分區中,使用三副本架構,任何一個節點出故障,不影響正常運行。
巨杉數據庫核心應用場景
巨杉數據庫大維度下的定位是一款真正的金融級分佈式關係型數據庫。 巨杉數據庫目前在企業級應用場景主要包括分佈式在線交易、數據中臺以及分佈式內容管理。
在線交易是數據庫最普遍應用的場景之一,一般用來支撐核心業務運營。分佈式在線交易數據庫核心業務價值包括,分佈式架構轉型,高併發、高處理能力,業務持續擴展能力以及自主可控與數據安全要求。
數據中臺提供全量數據的實時在線服務,泛指傳統核心交易之外的全部對外服務業務。
內容管理平臺爲企業提供存儲、管理和使用海量非結構化數據能力。常見應用包括影像平臺、文檔管理平臺、音視頻雙錄系統等。
分佈式事務能力
巨杉數據庫支持分佈式事務,使用二段提交確保多個節點之間數據一致,鎖機制是悲觀鎖,支持MVCC的讀寫提交能力。
HTAP讀寫分離
多租戶物理隔離能力
經過數據庫引擎的分佈式架構、Multimodel多模數據存儲類型以及實例化的數據庫實例管理,巨杉數據庫能夠實現多租戶啊管理的能力、HTAP等等雲化數據庫必須的技術能力。
最後八里莊技術委員會主席李丹與巨杉數據庫技術專家合照留念,期待更多數據庫技術交流。