當(dāng)我們的數(shù)據(jù)達(dá)到一定的量級(jí)之后,單表甚至單庫都無法支撐之時(shí),那么,便會(huì)涉及到分庫分表。分庫分表的方式有多種,開源的解決方案也很多,都是圍繞 客戶端的組件比較多,很多人也在用,這里就分享一些 Apache ShardingSphereApache ShardingSphere 是一款分布式的數(shù)據(jù)庫生態(tài)系統(tǒng), 可以將任意數(shù)據(jù)庫轉(zhuǎn)換為分布式數(shù)據(jù)庫,并通過數(shù)據(jù)分片、彈性伸縮、加密等能力對(duì)原有數(shù)據(jù)庫進(jìn)行增強(qiáng)。由 ShardingSphere-JDBC 和 ShardingSphere-Proxy 這 2 款既能夠獨(dú)立部署,又支持混合部署配合使用的產(chǎn)品組成。它們均提供標(biāo)準(zhǔn)化的基于數(shù)據(jù)庫作為存儲(chǔ)節(jié)點(diǎn)的增量功能,可適用于如 Java 同構(gòu)、異構(gòu)語言、云原生等各種多樣化的應(yīng)用場景。
開源地址:https://github.com/apache/shardingsphere.git VitessVitess是一個(gè)用于部署、擴(kuò)展和管理大型MySQL實(shí)例集群的數(shù)據(jù)庫解決方案。Vitess集Mysql數(shù)據(jù)庫的很多重要特性和NoSQL數(shù)據(jù)庫的可擴(kuò)展性于一體。它的架構(gòu)設(shè)計(jì)使得您可以像在物理機(jī)上一樣在公共云或私有云架構(gòu)中有效運(yùn)行。它結(jié)合并擴(kuò)展了許多重要的MySQL功能,同時(shí)兼具NoSQL數(shù)據(jù)庫的可擴(kuò)展性。 代碼地址:https://github.com/vitessio/vitess.git GaeaGaea是小米中國區(qū)電商研發(fā)部研發(fā)的基于mysql協(xié)議的數(shù)據(jù)庫中間件,目前在小米商城大陸和海外得到廣泛使用,包括訂單、社區(qū)、活動(dòng)等多個(gè)業(yè)務(wù) 具備的功能
開源地址:https://github.com/XiaoMi/Gaea.git MaxScale
MycatMycat是基于開源cobar演變而來,支持SQL92標(biāo)準(zhǔn),遵守Mysql原生協(xié)議,跨語言,跨平臺(tái),跨數(shù)據(jù)庫的通用中間件代理。 源碼地址:https://github.com/MyCATApache/Mycat-Server.git 除了上面幾個(gè)目前還是維護(hù)的幾個(gè)項(xiàng)目外,也還有一些其他公司開源的解決方案: 阿里巴巴Cobar:https://github.com/alibaba/cobar.git 另外,也還有很多開源的客戶端的解決方案。當(dāng)然,在分庫分表之后,又會(huì)衍生出其它問題,現(xiàn)在如今,也有很多廠家提供了強(qiáng)大的分布式數(shù)據(jù)庫,來幫我處理了分庫分表的麻煩。 |
|