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