的半同步复制通道。优点:
f双节点,需求资源少,部署简单;架构简单,没有选主的问题,直接切换即可相比于原生复制,优化后的半同步复制更能保证数据的一致性。缺点:需要修改内核源码或者使用mysql通信协议。需要对源码有一定的了解,并能做一
定程度的二次开发。
依旧依赖于半同步复制,没有从根本上解决数据一致性问题。
23高可用架构优化
将双节点数据库扩展到多节点数据库,或者多节点数据库集群。可以根据自己的需要选择一主两从、一主多从或者多主多从的集群。由于半同步复制,存在接收到一个从机的成功应答即认为半同步复制成功的特性,所以多从半同步复制的可靠性要优于单从半同步复制的可靠性。并且多节点同时宕机的几率也要小于单节点宕机的几率,所以多节点架构在一定程度上可以认为高可用性是好于双节点架构。但是由于数据库数量较多,所以需要数据库管理软件来保证数据库的可维护性。可以选择MMM、MHA或者各个版本的proxy等等。常见方案如下:
231MHA多节点集群
MHAMa
ager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master,整个故障转移过程对应用程序完全透明。MHANode运行在每台MySQL服务器上,主要作用是切换时处理二进制日志,确保切换尽量少丢数据。
fMHA也可以扩展到如下的多节点集群:
优点:可以进行故障的自动检测和转移可扩展性较好,可以根据需要扩展MySQL的节点数量和结构相比于双节点的MySQL复制,三节点多节点的MySQL发生不可用的概率更低
缺点:至少需要三节点,相对于双节点需要更多的资源逻辑较为复杂,发生故障后排查问题,定位问题更加困难数据一致性仍然靠原生半同步复制保证,仍然存在数据不一致的风险可能因为网络分区发生脑裂现象
232zookeeperproxy
Zookeeper使用分布式算法保证集群数据的一致性,使用zookeeper可以有效的保证proxy的高可用性,可以较好的避免网络分区现象的产生。
f优点:
较好的保证了整个系统的高可用性,包括proxy、MySQL扩展性较好,可以扩展为大规模集群
缺点:
数据一致性仍然依赖于原生的mysql半同步复制引入zk,整个系统的逻辑变得更加复杂
24共享存储
共享存储实现了数据库服务器和存储设备的解耦,不同数据库之间的数据同步不再依赖于MySQL的原生复制功能,而是通过磁盘数据同步的手段,来保证数据的一致性。
241SAN共享储存
SAN的概念是允许存储设备和处理r