1. 主从架构
主从架构,实现了读写分离(写操作在master节点,读操作在slave节点),master节点将数据同步存储到slave节点,提高MySQL整体性能/负载。但主从架构存在单点故障隐患,一旦主节点出现故障,整个系统就无法进行写操纵。
主从架构2. MHA
MHA
(Master High Availability),主要解决主节点的高可用问题,核心思想就是尽可能的保证数据一致性,不让数据丢失。当Master节点出现故障时,通过选举机制,Slave自动切换Master。但主节点把数据同步到从节点是有延时的,尤其在高并发情况下,同一刻主节点和从节点数据会不一致。
当Master节点挂掉后,主从节点是如何进行切换的?
- Master节点挂了之后,在Slave节点中重新选举一个新备选主节点,原则是
binlog
最近更新的Slave节点作为备选的主节点。 - 在备选主节点和其他Slave节点之间同步差异中继日志(relay log)。
- 应用从原来的Master节点上保存二进制日志。
- 将备选的主节点作为新的Master节点。
- 迁移集群其他Slave节点作为新Master节点的从节点。
3. PXC
PXC
是percona公司的percona xtraDB cluster
,简称PXC。它是基于Galera协议的高可用集群方案。在PXC架构中, MySQL无主从之分,每个节点都能够提供读和写操作,并且可以实现多个节点间的数据同步,可保障数据库的服务高可用及数据强一致性。
3.1 实现原理
在提交事务时,PXC确保所有的节点事务都要成功提交,才返回成功。如果其中有一个不成功,就回滚数据,返回失败。正因为如此,可以确保数据是一致的,而且是实时一致,当然这样就导致性能有损耗。另一个好处就是,每个节点都可以提供读写请求,不管写在哪个节点,都能够保证数据强一致性。
PXC执行流程3.2 MHA与PXC
- MHA主要写入速度很快,但数据不是强一致性,适合存储低价值的数据,如:权限、通知、日志、商品数据、购物车等等。
- PXC保证数据强一致性,但写入速度慢,适合存储高价值的数据,要求数据强一致性,如:账户,订单,交易等等。
网友评论