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