在以前,資料庫的集群配置一直很難,難點在於MySQL主從結構的高可用和讀寫分離。萬幸的是,Galera/GR的出現,讓整個集群的配置都極大程度地簡化了。 以下是一個簡單的MySQL集群拓撲圖: 1.MySQL中間件:對MySQL Server的讀寫操作進行路由(即讀寫分離);分庫分表(shardin ...
在以前,資料庫的集群配置一直很難,難點在於MySQL主從結構的高可用和讀寫分離。萬幸的是,Galera/GR的出現,讓整個集群的配置都極大程度地簡化了。
以下是一個簡單的MySQL集群拓撲圖:
1.MySQL中間件:對MySQL Server的讀寫操作進行路由(即讀寫分離);分庫分表(sharding)
- (1).MySQL Router:MySQL官方提供的輕量級MySQL代理(路由),只提供讀寫分離功能,前身為SQL Proxy。
- (2).ProxySQL:類似於MySQL Router,輕量級MySQL代理,提供讀寫分離功能,也支持一些sharding功能。有percona版和官方版兩個版本。
- (3).MaxScale:MariaDB的中間件,和MySQL Router、ProxySQL類似。
- 這三者類似,都是輕量級資料庫中間件。
- 這三者類似,都是輕量級資料庫中間件。
- (4).Amoeba、Cobar、MyCAT:提供很多功能,最主要的功能包括讀寫分離、sharding。
- 這三者的淵源較深,都是開源的。Amoeba後繼無人,於是Cobar出來,Cobar後繼無人,加上2013年出現了一次較嚴重的問題,於是MyCAT站在Cobar的肩膀上出來了。
2.MySQL主從複製的高可用:至少要實現主從切換或故障時選舉新master節點
- (1).MMM:淘汰了,在一致性和高併發穩定性等方面有些問題。
- (2).MHA:有些人還在用,但也有些問題,也是趨於淘汰的MySQL主從高可用方案。
- (3).Galera:引領時代的主從複製高可用技術。
- (4).MariaDB Galera Cluster:MariaDB對Galera的實現。
- (5).PXC:Percona XtraDB Cluster,是Percona對Galera的自我實現,用的人很多。
- (6).GR:Group Replication,MySQL官方提供的組複製技術(MySQL 5.7.17引入的技術),基於Paxos演算法。
- MariaDB Galera Cluster、PXC、GR是類似的,都各有優點。但GR是革命性的,基於原生複製技術,據傳很多方面都優於PXC。
- MariaDB Galera Cluster、PXC、GR為了安全性和性能考慮,做出了很多強制性的限制。例如基於GTID複製、只能InnoDB表,每表都必須有主鍵等。要使用它們提供主從複製的高可用,必須要瞭解它們的各項限制。
- MariaDB Galera Cluster、PXC、GR是類似的,都各有優點。但GR是革命性的,基於原生複製技術,據傳很多方面都優於PXC。