Halo_Shield的介绍
Halo Shield 是一套自动管理 Halo 主从数据库的高可用解决方案。该方案包括以下几个组成部分。
Etcd 分布式键值数据库
Patroni 流复制创建、管理、监控和自动故障转移进程
Etcd 最少需要三个节点且为奇数来进行 leader 选举。一般可以和Halo数据库部署在相同的服务器上。Etcd 集群之间会进行心跳检测,当发生网络故障时,节点数少的etcd集群会不可用,从而避免脑裂。
Patroni 运用 etcd 集群存储、检测Halo 主从节点的状态与配置信息,当由于故障使得某个节点无法工作,Patroni会自动侦测故障,并通过 etcd 更新节点信息,从而通知所有其他节点。如果该故障节点是主节点,Patroni 还会自动切换,并重新绑定VIP到新的主节点,从而减少对应用系统的影响。
Patroni 通过连接 etcd 对其它节点做心跳检测,当主节点无法更新etcd中的leader lock,patroni会终止当前节点的Halo数据库从而避免脑裂。