乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      分布式數(shù)據(jù)庫(kù)中間件解決方案Sharding-Sphere 3.X

       xujin3 2018-06-17

      碼農(nóng)少閑月,五月人倍忙!Sharding-Sphere在經(jīng)歷公投改名、新官網(wǎng)上線、版權(quán)轉(zhuǎn)移等一系列重大變革后,終于迎來(lái)了它的3.X新時(shí)代!從Sharding-JDBC到Sharding-Sphere,老鐵粉陪它一同走過(guò),新朋友也在陸續(xù)加入。Sharding-Sphere是什么?做什么?做的如何?三大經(jīng)典提問(wèn)幫助新老朋友一同溫故知新。


      Sharding-Sphere是什么?

      Sharding-Sphere是一套開(kāi)源的分布式數(shù)據(jù)庫(kù)中間件解決方案組成的生態(tài)圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar這3款相互獨(dú)立的產(chǎn)品組成。他們均提供標(biāo)準(zhǔn)化的數(shù)據(jù)分片、讀寫分離、柔性事務(wù)和數(shù)據(jù)治理功能,可適用于如Java同構(gòu)、異構(gòu)語(yǔ)言、容器、云原生等各種多樣化的應(yīng)用場(chǎng)景。


      Sharding-Sphere定位為關(guān)系型數(shù)據(jù)庫(kù)中間件,旨在充分合理地在分布式的場(chǎng)景下利用關(guān)系型數(shù)據(jù)庫(kù)的計(jì)算和存儲(chǔ)能力,而并非實(shí)現(xiàn)一個(gè)全新的關(guān)系型數(shù)據(jù)庫(kù)。它與NoSQL和NewSQL是并存而非互斥的關(guān)系。NoSQL和NewSQL作為新技術(shù)探索的前沿,是非常值得推薦的。而Sharding-Sphere關(guān)注未來(lái)不變的東西,進(jìn)而抓住事物本質(zhì)。關(guān)系型數(shù)據(jù)庫(kù)當(dāng)今依然占有巨大市場(chǎng),是各個(gè)公司核心業(yè)務(wù)的基石,我們目前階段更加關(guān)注在原有基礎(chǔ)上的增量,而非顛覆。其架構(gòu)如下圖所示:


      Sharding-Sphere家族都有誰(shuí)?

      Sharding-JDBC, Sharding-Proxy以及Sharding-Sidecar 共同組成了Sharding-Sphere。他們分別定位、適用于不同的應(yīng)用場(chǎng)景。您也可以將他們組合使用以得到增益的性能表現(xiàn)。


      1. Sharding-JDBC

      Sharding-JDBC是Sharding-Sphere的第一個(gè)產(chǎn)品,也是Sharding-Sphere的前身。 它定位為輕量級(jí)Java框架,在Java的JDBC層提供分庫(kù)分表、讀寫分離、數(shù)據(jù)庫(kù)治理、柔性事務(wù)等服務(wù)。它使用客戶端直連數(shù)據(jù)庫(kù),以jar包形式提供服務(wù),無(wú)需額外部署和依賴,可理解為增強(qiáng)版的JDBC驅(qū)動(dòng),完全兼容JDBC和各種ORM框架。


      2. Sharding-Proxy

      Sharding-Proxy是Sharding-Sphere的第二個(gè)產(chǎn)品。 它定位為透明化的數(shù)據(jù)庫(kù)代理端,提供封裝了數(shù)據(jù)庫(kù)二進(jìn)制協(xié)議的服務(wù)端版本,用于完成對(duì)異構(gòu)語(yǔ)言的支持。 Sharding-Proxy屏蔽了底層的分庫(kù)分表,您可以像使用一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)一樣來(lái)操作分庫(kù)分表的數(shù)據(jù)。目前提供MySQL版本,它可以使用任何兼容MySQL協(xié)議的訪問(wèn)客戶端(如:MySQL Command Client, MySQL Workbench等)來(lái)訪問(wèn)Sharding-Proxy,進(jìn)而進(jìn)行DDL/DML等操作來(lái)變更數(shù)據(jù),對(duì)DBA更加友好。


      3. Mixed scheme of Sharding-JDBC & Sharding-Proxy

      為了得到更好的性能以及友好的交互體驗(yàn),您可以同時(shí)使用Sharding-JDBC和Sharding-Proxy。


      線上應(yīng)用使用Sharding-JDBC直連數(shù)據(jù)庫(kù)以獲取最優(yōu)性能,使用MySQL命令行或UI客戶端連接Sharding-Proxy方便的查詢數(shù)據(jù)和執(zhí)行各種DDL語(yǔ)句。它們使用同一個(gè)注冊(cè)中心集群,通過(guò)管理端配置注冊(cè)中心中的數(shù)據(jù),即可由注冊(cè)中心自動(dòng)將配置變更推送至JDBC和Proxy應(yīng)用。若數(shù)據(jù)庫(kù)拆分的過(guò)多而導(dǎo)致連接數(shù)會(huì)暴漲,則可以考慮直接在線上使用Sharding-Proxy,以達(dá)到有效控制連接數(shù)的目的。其架構(gòu)如下如所示:


      4. Sharding-Sidecar

      Sharding-Sidecar是Sharding-Sphere的第三個(gè)產(chǎn)品,目前仍處在孵化中。 定位為Kubernetes或Mesos的云原生數(shù)據(jù)庫(kù)代理。其核心思想是Database Mesh,即通過(guò)無(wú)中心、零侵入的方案提供與數(shù)據(jù)庫(kù)交互的嚙合層。關(guān)注重點(diǎn)在于如何將分布式的數(shù)據(jù)訪問(wèn)應(yīng)用與數(shù)據(jù)庫(kù)有機(jī)串聯(lián)起來(lái)。


       Sharding-Sphere的功能特性

      1. 分庫(kù)分表

      為解決關(guān)系型數(shù)據(jù)庫(kù)面對(duì)海量數(shù)據(jù)由于數(shù)據(jù)量過(guò)大而導(dǎo)致的性能問(wèn)題,將數(shù)據(jù)進(jìn)行分片是行之有效的解決方案,而將集中于單一節(jié)點(diǎn)的數(shù)據(jù)拆分并分別存儲(chǔ)到多個(gè)數(shù)據(jù)庫(kù)或表,稱為分庫(kù)分表。作為分布式數(shù)據(jù)庫(kù)中間件,我們的目標(biāo)是透明化分庫(kù)分表所帶來(lái)的影響,讓使用方盡量像使用一個(gè)數(shù)據(jù)庫(kù)一樣使用水平拆分之后的數(shù)據(jù)庫(kù)。


      2. 讀寫分離

      面對(duì)日益增加的系統(tǒng)訪問(wèn)量,數(shù)據(jù)庫(kù)的吞吐量面臨著巨大瓶頸。 對(duì)于同一時(shí)間有大量并發(fā)讀操作和較少寫操作類型的應(yīng)用系統(tǒng)來(lái)說(shuō),將單一的數(shù)據(jù)庫(kù)拆分為主庫(kù)和從庫(kù),主庫(kù)負(fù)責(zé)處理事務(wù)性的增刪改操作,從庫(kù)負(fù)責(zé)處理查詢操作,能夠有效的避免由數(shù)據(jù)更新導(dǎo)致的行鎖,使得整個(gè)系統(tǒng)的查詢性能得到極大的改善。透明化讀寫分離所帶來(lái)的影響,讓使用方盡量像使用一個(gè)數(shù)據(jù)庫(kù)一樣使用主從數(shù)據(jù)庫(kù),是讀寫分離中間件的主要功能。


      3. 柔性事務(wù)

      對(duì)于分布式的數(shù)據(jù)庫(kù)來(lái)說(shuō),強(qiáng)一致性分布式事務(wù)在性能方面存在明顯不足。追求最終一致性的柔性事務(wù),在性能和一致性上則顯得更加平衡。 Sharding-Sphere目前支持最大努力送達(dá)型柔性事務(wù),未來(lái)也將支持TCC柔性事務(wù)。若不使用柔性事務(wù),Sharding-Sphere也會(huì)自動(dòng)包含弱XA事務(wù)支持。


      4. 數(shù)據(jù)治理

      Sharding-Sphere提供注冊(cè)中心、配置動(dòng)態(tài)化、數(shù)據(jù)庫(kù)熔斷禁用、調(diào)用鏈路等治理能力。


      Sharding-Sphere 3.X新功能

      1. Sharding-Proxy MySQL版本上線,支持DML/DDL/DAL/DQL等基本 SQL。屏蔽底層所有分庫(kù)分表,可像使用單一MySQL數(shù)據(jù)庫(kù)一樣處理分庫(kù)分表數(shù)據(jù)。

      2. 新增對(duì)OR SQL語(yǔ)句的支持,例如:select * from t_order where (id>10 and id<20) or="" status="">

      3. 新增對(duì)INSERT批量插入的支持,例如 insert into t_order(order_id, user_id, status) values (1, 2, ‘init’), (2, 3, ‘init’), (3, 4, ‘init’);

      4. 優(yōu)化對(duì)INSERT SQL語(yǔ)句的支持,主要包括不指定具體列進(jìn)行INSERT操作,例如:insert into t_order values(1, 2,‘init’);

      5. 增加解析引擎對(duì)SQL的緩存,進(jìn)一步提升解析性能。

      6. Sharding-JDBC新增對(duì)InlineExpression占位符$->{}的支持。


      新的產(chǎn)品、新的特性、新的優(yōu)化是不是讓你眼前一亮?那就趕快把Sharding-Sphere 3.X用起來(lái)吧!


      暖心Tips:

      ① 使用Sharding-JDBC,可加入以下Maven依賴:


      ② 使用Sharding-Proxy,可在這里下載:

      https://github.com/sharding-sphere/sharding-sphere-doc/raw/master/dist/sharding-proxy-3.0.0.M1.tar.gz


      此外,我們的DOCKER下載命令如下所示:

      docker pull shardingsphere/sharding-proxy


      星路歷程

      Sharding-Sphere自2016開(kāi)源以來(lái),不斷精進(jìn)、不斷發(fā)展,被越來(lái)越多的企業(yè)和個(gè)人認(rèn)可:在Github上收獲4000+的star,1700+forks,60+的各大公司企業(yè)使用它,為Sharding-Sphere提供了重要的成功案例。此外,越來(lái)越多的企業(yè)伙伴和個(gè)人也加入到Sharding-Sphere的開(kāi)源項(xiàng)目中,為它的成長(zhǎng)和發(fā)展貢獻(xiàn)了巨大力量。


      未來(lái),我們將不斷優(yōu)化當(dāng)前的特性,精益求精;同時(shí),大家關(guān)注的柔性事務(wù)、數(shù)據(jù)治理等更多新特性也會(huì)陸續(xù)登場(chǎng)。Sharding-Sidecar也將成為云原生的數(shù)據(jù)庫(kù)中間件!


      愿所有有識(shí)之士能加入我們,一同描繪Sharding-Sidecar的新未來(lái)!

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多