6大分庫(kù)分表中間件ShardingSphere、TDDL、DRDS、MyCAT、Atlas、Vitess詳解(圖文全面總結(jié))
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
分庫(kù)分表是大型架構(gòu)的必備技能,也是大廠經(jīng)??疾斓闹攸c(diǎn)對(duì)象,下面我就全面來(lái)詳解分庫(kù)分表中間件@mikechen 最新mikechen原創(chuàng)超30萬(wàn)字《阿里架構(gòu)師進(jìn)階專題合集》和《大廠最全面試題及答案合集》,請(qǐng)關(guān)注本公眾號(hào)【mikechen的互聯(lián)網(wǎng)架構(gòu)】,后臺(tái)回復(fù):合集,即可領(lǐng)取。 分庫(kù)分表分庫(kù)分表:是數(shù)據(jù)庫(kù)水平擴(kuò)展的一種常見(jiàn)策略,用于處理大規(guī)模數(shù)據(jù)、和高并發(fā)請(qǐng)求。 如下圖所示: 分庫(kù)分表,這里分為兩個(gè)方面,包含:分庫(kù)、和分表兩種策略。 1、分庫(kù) 分庫(kù):就是將數(shù)據(jù)水平分散到多個(gè)數(shù)據(jù)庫(kù)實(shí)例中,每個(gè)數(shù)據(jù)庫(kù)實(shí)例可以部署在不同的服務(wù)器上,從而減輕單個(gè)數(shù)據(jù)庫(kù)的壓力。 還是舉一個(gè)例子,比如:數(shù)據(jù)按照某個(gè)字段的值范圍,分布到不同的庫(kù)中。 例如:用戶ID為1-10000的數(shù)據(jù)存儲(chǔ)在庫(kù)A,10001-20000的數(shù)據(jù)存儲(chǔ)在庫(kù)B,這就是分庫(kù)。 2、分表 分表:就是在單個(gè)數(shù)據(jù)庫(kù)實(shí)例內(nèi),將數(shù)據(jù)水平分散到多個(gè)表中,從而減輕單表的壓力。 還是舉一個(gè)例子,比如:根據(jù)某個(gè)字段的值范圍分表。 例如:用戶ID為1-10000的數(shù)據(jù)存儲(chǔ)在表user_1,10001-20000的數(shù)據(jù)存儲(chǔ)在表user_2,這就是分表。 總之,分庫(kù)分表是數(shù)據(jù)庫(kù)擴(kuò)展中常用的策略,目的是提高系統(tǒng)的并發(fā)處理能力、和數(shù)據(jù)存儲(chǔ)能力。 分庫(kù)分表中間件在了解完分庫(kù)分表后,我們一起來(lái)看看目前市場(chǎng)主流的分庫(kù)分表中間件有哪些呢?let's go! 1.ShardingSphere ShardingSphere 是一個(gè)開(kāi)源的分布式數(shù)據(jù)庫(kù)中間件解決方案,支持:分庫(kù)分表、讀寫(xiě)分離、分布式事務(wù)、數(shù)據(jù)加密......等多種功能。 ShardingSphere 通過(guò)統(tǒng)一的接口、和高性能的實(shí)現(xiàn),為開(kāi)發(fā)者提供了透明的分庫(kù)分表支持,適用于Java等應(yīng)用。 如下圖所示: 主要包括三個(gè)核心組件:
ShardingSphere 適用于各種需要分布式數(shù)據(jù)庫(kù)管理的場(chǎng)景,比如:電商、社交網(wǎng)絡(luò).....等需要處理大規(guī)模數(shù)據(jù),和高并發(fā)請(qǐng)求的場(chǎng)景。 2.TDDL TDDL,全稱是Taobao Distributed Data Layer,就是:淘寶分布式數(shù)據(jù)層。 TDDL是阿里巴巴集團(tuán)內(nèi)部開(kāi)發(fā)的一款分布式數(shù)據(jù)庫(kù)中間件,設(shè)計(jì)目標(biāo)是:解決在電商業(yè)務(wù)中遇到的大規(guī)模數(shù)據(jù)、和高并發(fā)請(qǐng)求問(wèn)題。 3.DRDS 阿里的TDDL,后續(xù)升級(jí)為:DRDS,全稱是“Distributed Relational Database Service”,是一款:分布式關(guān)系型數(shù)據(jù)庫(kù)服務(wù)。 DRDS整體架構(gòu),如下圖所示: DRDS支持:分庫(kù)分表、讀寫(xiě)分離、和分布式事務(wù)...等技術(shù)。 DRDS廣泛應(yīng)用于數(shù)據(jù)量大的場(chǎng)景,比如:電商、金融、游戲...等領(lǐng)域。 4.MyCAT MyCAT 是基于阿里巴巴的 Cobar 項(xiàng)目開(kāi)發(fā)的,是一個(gè)增強(qiáng)版的數(shù)據(jù)庫(kù)中間件,支持多種數(shù)據(jù)庫(kù)(如:MySQL、PostgreSQL...)等。 整體架構(gòu),如下圖所示: MyCAT 支持將數(shù)據(jù)分散到多個(gè)數(shù)據(jù)庫(kù)實(shí)例、和多個(gè)表中,通過(guò)靈活的分片規(guī)則實(shí)現(xiàn)水平擴(kuò)展。 比如:
5.Atlas Atlas 是由360 公司開(kāi)發(fā)的一款開(kāi)源 MySQL 數(shù)據(jù)庫(kù)中間件,可以實(shí)現(xiàn) MySQL 數(shù)據(jù)庫(kù)的水平擴(kuò)展、和高可用性。 Atlas 支持分庫(kù)分表,以及還支持讀寫(xiě)分離,將寫(xiě)請(qǐng)求發(fā)送到主庫(kù),讀請(qǐng)求發(fā)送到從庫(kù),從而提升系統(tǒng)的讀寫(xiě)性能和可用性。 6.Vitess Vitess 是一個(gè)開(kāi)源的分布式數(shù)據(jù)庫(kù)中間件系統(tǒng),最初由 YouTube 開(kāi)發(fā),用于解決其在大規(guī)模 MySQL 集群中的擴(kuò)展性問(wèn)題。 Vitess 通過(guò)分庫(kù)分表技術(shù),將數(shù)據(jù)分散存儲(chǔ)到多個(gè) MySQL 實(shí)例中,從而提升數(shù)據(jù)庫(kù)的存儲(chǔ)能力、和并發(fā)處理能力。 閱讀原文:原文鏈接 該文章在 2025/7/1 23:55:43 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |