MySQL galera cluster

galera cluster是一个MySQL的多主高可用方案,相对于异步复制,最大的长处是不丢数据,因为他是同步复制。

优点与缺点

优点

  1. 真正的多主模式(True Multi-master)
    意味着你可以在任意节点读写,适度的规模可以提高集群整体的性能。
    不会出现主从模式的故障转移(Master-Slave Failover)操作,也不需要VIP。
  2. 同步复制(Synchronous Replication)
    意味着没有slave lag,没有节点crash的时候出现的丢数据现象(Hot Standby)。
    并且是Multi-threaded Slave,性能也不错。
    紧耦合(Tightly Coupled)所有节点数据和状态一致。
  3. 自动节点管理(Automatic Node Provisioning)
    不需要人工去备份数据库恢复到新节点。

参考:"Benefits of Galera Cluster"
继续阅读

HA in MySQL Replication

因为aCloud原有实现就是基于半同步机制的,所以我们讲了《MySQL Semi-Synchronous Replication》,明白了半同步机制,我们再来看看目前在复制机制下的高可用实现。

为了实现HA(High Availability,高可用),引入了VIP(Virtual IP,虚拟IP)。

VIP

在master/slave的复制模型下,master对外提供写服务,slave可以不提供任何服务,只是做备份。

也有人将slave利用起来,提供读服务,就叫做读写分离,读写分离可以减轻单台服务器的压力。

不管怎么说,半同步机制是单master多slave的模式,这种模式下,只能在master上提供写服务,如果master挂了,如何保证业务连续性?

VIP原理类似DNS,在DNS中我们每次链接到一个域名,每次解析域名得到可提供服务的IP。VIP的话,我们每次在能提供服务的主机上,配置一个固有IP,如果这台主机出问题了,例如宕机了,就在其他能提供服务的节点,例如从节点配置该IP,这样用户每次链接同一个IP,也能实现高可用。 继续阅读

MySQL Semi-Synchronous Replication

半同步复制(Semi-Synchronous Replication)是相对于同步复制和异步复制而言的折中方案,当两台MySQL数据库需要同步数据,基本的复制思路如图:

master对外提供写服务,并开启binary log功能,然后slave节点启动一个IO线程来从master的binary log同步并将其写入本节点的relay log中,slave再启动一个SQL线程,从relay log中读取日志记录并插入本节点的数据库。

一切原理都是那么简单。 继续阅读