0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ShardingSphere的框架及應(yīng)用解決方案

牽手一起夢(mèng) ? 來(lái)源:IT168網(wǎng)站 ? 作者:李雪薇 ? 2020-09-10 15:29 ? 次閱讀

一、NewSQL的概念

NewSQL的概念,最開始來(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)而生,它最開始的定義就叫做Scalability SQL。

在分布式的場(chǎng)景中,沒(méi)有辦法同時(shí)保證Consistency(一致性)和Availability(可用性),以及分區(qū)的容錯(cuò)性。CAP原則就是,你只能保證整個(gè)系統(tǒng)更關(guān)注于強(qiáng)一致性,或者高可用性。

ShardingSphere的框架及應(yī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ù)。從開發(fā)的角度,NewSQL具有New Architecture(新架構(gòu))、Transparent Sharding(透明化分片中間件)、Database as a Service(云數(shù)據(jù)庫(kù))三種形態(tài)。

二、Apache ShardingSphere的架構(gòu)

Apache ShardingSphere是一套開源的分布式數(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最開始定位于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ù)集群。

三、功能介紹

仔細(xì)觀察ShardingSphere的框架,我們不難發(fā)現(xiàn)中間件左側(cè)的Sharding-Scaling,它是一個(gè)提供給用戶的通用的ShardingSphere數(shù)據(jù)接入遷移,及彈性伸縮的調(diào)度平臺(tái)。

JDBC的核心功能就是Orchestration,即編排治理,配置集中化與動(dòng)態(tài)化、數(shù)據(jù)治理。ShardingSphere提供了界面治理模塊——Sharding-UI,可以快速維護(hù)Sharding-Proxy集群,方便用戶一鍵式的操作。

如上圖所示,從研發(fā)的角度來(lái)看Apache ShardingSphere的框架,最上面的接入端有JDBC和Proxy,中間層的核心功能是數(shù)據(jù)分片、分布式事務(wù)、數(shù)據(jù)庫(kù)治理,最下層是數(shù)據(jù)庫(kù)集群。

其實(shí),Sharding是Apache ShardingSphere的立足之本。除了分庫(kù)分表,它還還支持Encrypt(脫敏)和Shadow(影子庫(kù)),所有壓測(cè)的數(shù)據(jù)都會(huì)分配的影子庫(kù)中。Sharding最核心的還是底層四個(gè)模塊來(lái)做支撐。

我們必須要解析SQL,才能理解用戶需要什么。Parser(解析器)已經(jīng)重構(gòu)過(guò)很多遍,為了實(shí)現(xiàn)自主可控,保證高效性和正確性。除此之外,Router代表著路由,Rewriter改寫一些SQL,Executor做并行的控制,提高整體效率。

分布式事務(wù)主要有兩個(gè)方面,ACID強(qiáng)一致性事務(wù)和BASE柔性事務(wù)。值得一提的是,ShardingSphere分為自研的分布式數(shù)據(jù)庫(kù)(DTX)、對(duì)接其他公司的解決方案兩部分。對(duì)于用戶來(lái)說(shuō),他無(wú)需過(guò)多了解ShardingSphere,就可以擁有多種分布式事務(wù)的選型,這其實(shí)是一種非常有意思的方式。

ShardingSphere不只是一個(gè)分布式數(shù)據(jù)庫(kù)的原因在于,它的Orchestration模塊提供了很多功能,比如在線變更、分片規(guī)則的在線推送,以及限流和熔斷等。用戶在了解分片的基礎(chǔ)上,可以慢慢去探索這個(gè)開放生態(tài),找到自己想要的功能。

潘娟強(qiáng)調(diào)道,分庫(kù)分表、強(qiáng)一致事務(wù)、柔性事務(wù)、分布式治理、可視化鏈路追蹤、讀寫分離等所有的功能都是可以組合在一起的。完全的自由組合,從而形成一個(gè)只滿足公司所需要的產(chǎn)品。

當(dāng)存儲(chǔ)系統(tǒng)或者性能不夠的時(shí)候,數(shù)據(jù)庫(kù)就要通過(guò)Scaling(遷移平臺(tái))進(jìn)行Scale out(擴(kuò)展)。目標(biāo)不是放在提高單機(jī)性能上,而是要做成分布式,多個(gè)機(jī)器來(lái)解決。

四、社區(qū)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    dotConnect:基于ADO.NET架構(gòu)的增強(qiáng)型數(shù)據(jù)連接解決方案

    dotConnect是一個(gè)基于ADO.NET架構(gòu)的增強(qiáng)型數(shù)據(jù)連接解決方案,是一個(gè)采用了大量創(chuàng)新技術(shù)的開發(fā)框架。dotConnect是一款適用于主要數(shù)據(jù)庫(kù)和流行云應(yīng)用程序的高性能數(shù)據(jù)提供程序,為開發(fā)
    的頭像 發(fā)表于 01-07 11:07 ?93次閱讀
    dotConnect:基于ADO.NET架構(gòu)的增強(qiáng)型數(shù)據(jù)連接<b class='flag-5'>解決方案</b>

    鴻蒙原生頁(yè)面高性能解決方案上線OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用

    。 HMrouter:簡(jiǎn)化頁(yè)面跳轉(zhuǎn)邏輯HMrouter是HarmonyOS NEXT出色的路由框架解決方案,專注于優(yōu)化應(yīng)用內(nèi)原生頁(yè)面跳轉(zhuǎn)邏輯,它封裝系統(tǒng) Navigation,集成
    發(fā)表于 01-02 18:00

    SSM開發(fā)中的常見(jiàn)問(wèn)題及解決方案

    在SSM(Spring + Spring MVC + MyBatis)框架的開發(fā)過(guò)程中,開發(fā)者可能會(huì)遇到一些常見(jiàn)問(wèn)題。以下是對(duì)這些問(wèn)題的詳細(xì)分析以及相應(yīng)的解決方案: 一、配置文件問(wèn)題 問(wèn)題描述
    的頭像 發(fā)表于 12-17 09:16 ?485次閱讀

    SSM框架的優(yōu)缺點(diǎn)分析 SSM在移動(dòng)端開發(fā)中的應(yīng)用

    :Spring框架是企業(yè)型開發(fā)使用的成熟的開源框架,能夠節(jié)省成本。SSM框架使用起來(lái)更加輕快,能夠更合理地分配資源,使用最小的資源完成當(dāng)前的需求。 節(jié)省開發(fā)時(shí)間 :SSM框架采用典型
    的頭像 發(fā)表于 12-16 18:18 ?646次閱讀

    晶科儲(chǔ)能與嘉實(shí)多簽署戰(zhàn)略合作框架協(xié)議

    全球領(lǐng)先的儲(chǔ)能解決方案供應(yīng)商晶科儲(chǔ)能與嘉實(shí)多今日宣布,雙方已簽署戰(zhàn)略合作框架協(xié)議,旨在通過(guò)資源共享和技術(shù)創(chuàng)新,共同推進(jìn)儲(chǔ)能領(lǐng)域的研發(fā)與應(yīng)用。
    的頭像 發(fā)表于 11-21 11:15 ?296次閱讀

    解決方案】港口船舶岸電綜合能效解決方案

    解決方案】港口船舶岸電綜合能效解決方案
    的頭像 發(fā)表于 11-14 01:02 ?186次閱讀
    【<b class='flag-5'>解決方案</b>】港口船舶岸電綜合能效<b class='flag-5'>解決方案</b>

    智慧燈桿解決方案

    智慧燈桿解決方案
    的頭像 發(fā)表于 11-11 08:34 ?228次閱讀
    智慧燈桿<b class='flag-5'>解決方案</b>

    解決方案】智慧用電解決方案

    解決方案】智慧用電解決方案
    的頭像 發(fā)表于 11-11 01:00 ?152次閱讀
    【<b class='flag-5'>解決方案</b>】智慧用電<b class='flag-5'>解決方案</b>

    解決方案 | 基于TSMaster的平板電腦解決方案

    Tosun基于TSMaster的平板電腦解決方案基于TSMaster的平板電腦是一款集成了TSMaster軟件平臺(tái)和多種總線分析硬件工具的綜合產(chǎn)品,旨在充分發(fā)揮同星自主研發(fā)的技術(shù)優(yōu)勢(shì),解決實(shí)車路試
    的頭像 發(fā)表于 11-10 01:02 ?645次閱讀
    <b class='flag-5'>解決方案</b> | 基于TSMaster的平板電腦<b class='flag-5'>解決方案</b>

    智慧路燈桿總體解決方案 智能智慧路燈屏燈桿屏解決方案

    智慧路燈桿總體解決方案 智能智慧路燈屏燈桿屏解決方案
    的頭像 發(fā)表于 10-11 09:30 ?487次閱讀
    智慧路燈桿總體<b class='flag-5'>解決方案</b> 智能智慧路燈屏燈桿屏<b class='flag-5'>解決方案</b>

    揭秘動(dòng)態(tài)化跨端框架在鴻蒙系統(tǒng)下的高性能解決方案

    平臺(tái)解決方案。 在研發(fā)團(tuán)隊(duì)使用后可大幅降低研發(fā)人力成本;為業(yè)務(wù)提供實(shí)時(shí)觸達(dá)、A/B觸達(dá)等能力以提升業(yè)務(wù)投放效率;同時(shí)保障了C端用戶優(yōu)秀的用戶體驗(yàn)。 一、動(dòng)態(tài)化跨端框架原理介紹 ? ? ? ? ? 通過(guò)上圖,我們先了解一下動(dòng)態(tài)化跨端框架
    的頭像 發(fā)表于 10-08 13:46 ?904次閱讀
    揭秘動(dòng)態(tài)化跨端<b class='flag-5'>框架</b>在鴻蒙系統(tǒng)下的高性能<b class='flag-5'>解決方案</b>

    BCM中的開關(guān)檢測(cè):集成MSDI解決方案與半分立解決方案

    電子發(fā)燒友網(wǎng)站提供《BCM中的開關(guān)檢測(cè):集成MSDI解決方案與半分立解決方案.pdf》資料免費(fèi)下載
    發(fā)表于 09-20 09:08 ?1次下載
    BCM中的開關(guān)檢測(cè):集成MSDI<b class='flag-5'>解決方案</b>與半分立<b class='flag-5'>解決方案</b>

    工大高科與科大訊飛簽訂戰(zhàn)略合作框架協(xié)議

    近日,工大高科與科大訊飛正式簽署戰(zhàn)略合作框架協(xié)議,共同致力于智能化礦山的建設(shè)與發(fā)展。根據(jù)協(xié)議,雙方將深度合作,共同研發(fā)和應(yīng)用前沿的智能礦山解決方案
    的頭像 發(fā)表于 05-20 11:23 ?530次閱讀

    多端口能量路由實(shí)時(shí)控制仿真系統(tǒng)解決方案

    RCP多端口設(shè)備電力電子教學(xué)產(chǎn)品結(jié)合CBox設(shè)備,通過(guò)MATLAB及相關(guān)硬件的模塊化設(shè)計(jì),為解決教學(xué)內(nèi)容復(fù)雜、理論與實(shí)際脫節(jié)等問(wèn)題提供了一種創(chuàng)新的解決方案。 RCP多端口設(shè)備可實(shí)現(xiàn)幾乎大部分經(jīng)典電力
    發(fā)表于 05-10 11:05

    智能音箱解決方案

    智能音箱解決方案
    的頭像 發(fā)表于 05-09 09:37 ?651次閱讀
    智能音箱<b class='flag-5'>解決方案</b>