京東數(shù)科高級DBA潘娟:Apache ShardingSphere的架構、特性
近些年NewSQL概念盛行,國內外各大公司對NewSQL都有著不同的解讀。本次ITPUB技術棧線上沙龍2020上,京東數(shù)科高級DBA潘娟分享了有關NewSQL理念、國內外產品架構的解讀,以及Apache ShardingSphere的架構、特性、規(guī)劃、開源社區(qū)。
嘉賓簡介:主要負責京東數(shù)科分布式數(shù)據庫開發(fā)、數(shù)據庫運維自動化平臺開發(fā)等工作。曾負責京東數(shù)科數(shù)據庫自動化平臺設計與開發(fā),現(xiàn)專注于Apache ShardingSphere分布式數(shù)據庫中間件平臺的開發(fā)。主要在分布式數(shù)據庫、開源、分布式架構等相關領域進行探索。多次受邀參加數(shù)據庫&架構領域的相關會議并進行分享交流。
一、NewSQL的概念
NewSQL的概念,最開始來源于國外的一份商業(yè)分析報告。它是各種新的可擴展/高性能數(shù)據庫的簡稱,這類數(shù)據庫不僅具有NoSQL海量數(shù)據的存儲管理能力,還保持了傳統(tǒng)數(shù)據庫支持ACID和SQL等特性。
提及SQL,很多朋友最先想到的就是MySQL數(shù)據庫和PostgreSQL數(shù)據庫。對我們來說,它其實一個單點、很可靠,有ACID事務,也有查詢語言的關系型數(shù)據庫。其中,ACID事務和查詢語言是我們最關心的兩點。
伴隨互聯(lián)網的蓬勃發(fā)展,數(shù)據量的持續(xù)膨脹,NoSQL出現(xiàn)了。NoSQL泛指非關系型數(shù)據庫,具備Scalability(擴展性)和Resilience(彈性)。擴展性是指可以無限的把一個單點變成一個集群,從而提升整個系統(tǒng)的可用性。彈性保證了在宕機集群崩潰后,數(shù)據的自動修復且上層業(yè)務無感知。
那么就有人提出來了,我能不能既可以擁有像SQL的關系模型,擁有它的ACID事務,同時還擁有像NoSQL的擴展性、彈性伸縮,以及高可用性。于是,NewSQL應運而生,它最開始的定義就叫做Scalability SQL。
在分布式的場景中,沒有辦法同時保證Consistency(一致性)和Availability(可用性),以及分區(qū)的容錯性。CAP原則就是,你只能保證整個系統(tǒng)更關注于強一致性,或者高可用性。
綜上所述,NewSQL是為了綜合SQL和NoSQL的特性。它的存在并不是完全顛覆了CAP理論,而是需要基于這套理論,根據我們自身的實際情況,選擇一個Consistency和Availability之間的平衡點。
對于用戶來說,NewSQL其實就是A single logical DB,即單個邏輯數(shù)據庫。從開發(fā)的角度,NewSQL具有New Architecture(新架構)、Transparent Sharding(透明化分片中間件)、Database as a Service(云數(shù)據庫)三種形態(tài)。
二、Apache ShardingSphere的架構
Apache ShardingSphere是一套開源的分布式數(shù)據庫中間件解決方案組成的生態(tài)圈,它由JDBC、Proxy和Sidecar(規(guī)劃中)這3款相互獨立,卻又能夠混合部署配合使用的產品組成。它們均提供標準化的數(shù)據分片、分布式事務和數(shù)據庫治理功能,可適用于Java同構、異構語言、云原生等各種多樣化的應用場景。
Apache ShardingSphere定位為關系型數(shù)據庫中間件,旨在充分合理地在分布式的場景下利用關系型數(shù)據庫的計算和存儲能力,而并非實現(xiàn)一個全新的關系型數(shù)據庫。Apache ShardingSphere目前已提供數(shù)十個SPI作為系統(tǒng)的擴展點,仍在不斷增加中。
如上圖所示,這是Apache ShardingSphere最新的部署框架。Apache ShardingSphere最開始定位于NewSQL的中間件,后面它的盤子越來越大,逐漸超越了中間件的范疇,但又未達到新架構的范疇,處在一個中間的狀態(tài)。
首先,中間件的數(shù)據庫集群,可能有自己的主庫或者從庫,包括同步、復制、備份等都是靠MySQL或者PG數(shù)據庫來實現(xiàn)的。
其次,用戶真正能夠接觸三個產品,第一個產品叫ShardingSphere-JDBC,它定位為輕量級Java框架,在Java的JDBC層提供的額外服務。它具備解析SQL、分片管理、分布式事務,脫敏等功能。
第二個產品叫ShardingSphere-Proxy,定位為透明化的數(shù)據庫代理端,提供封裝了數(shù)據庫二進制協(xié)議的服務端版本,用于完成對異構語言的支持。適用于任何兼容MySQL/PostgreSQL協(xié)議的的客戶端,可以管理數(shù)據庫集群。

請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關稅,能否乘機器人東風翻身?