zookeeper在mysql主库选举切换中的应用

本文介绍了如何利用Zookeeper实现MySQL主备切换的自动化。在避免使用虚拟IP的情况下,通过在每个MySQL实例上部署agent,定时ping操作并注册Zookeeper临时节点,当节点宕机时,Zookeeper的watch功能将触发新的主库选举,确保数据库集群的高可用性。
摘要由CSDN通过智能技术生成

为了保证可用性,传统的关系型数据库(mysql)通常采用一主多备的方式,当主宕机后,切换到备机。

有多种方式可以做到主备自动失效检测切换,比如传统的HA软件heartbeat,keepalived等等,采取虚拟IP的方式对客户端透明;

这里主备自动切换方案没有采取VIP的方式,而是用zookeeper对数据库集群进行管理,可以做到主备失效检测切换,主库的选举,

比如考虑到mysql对多核利用率不高而一个节点部署多个mysql实例,如果采用VIP的方式是不可行的。

基本做法是,每个mysql实例上部署一个agent节点,agent负责对该mysql实例定时进行ping操作,agent在zookeeper上注册临时节点,

如果agent或者该agent代理的mysql宕掉,注册在zookeeper上的节点就会发生变化,利用zookeeper watch功能实现mysq实例失效后的主库的选举操作,

读节点也通过watch master节点的功能实现指向新的master。

如上图所示,zookeeper上的master节点存储当前主节点名称;

servers下面保存在线的节点,命名规则一般为ip:port_序列号;

nodeid为当前的序列号,每当节点获取一个序列号时,该节点值自就增,以便于分配给下一个节点。

 过程如下:

 a、初始化阶段,创建servers,master,node

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值