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

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車】汽車E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺(tái)
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?