之前我们已经搭建好了MyCat管理的PXC集群以及replication集群
MyCat实现PXC集群负载均衡以及replication集群读写分离
为了实现高可用,我们接下来需要在MyCat中间件之前使用Keepalived实现双机热备
一.Keepalived如何实现双机热备?
为了实现高可用,我们使用keepalived来实现双机热备。
其主要工作原理是,在MyCat容器上面使用keepalived来生成一个虚拟IP地址。
连接数据库的时候不实用MyCat的IP地址,而是使用keepalived的虚拟IP地址。
在我们构建的双keepalived+MyCat方案中,两个keepalived争抢节点连接,
抢到之后该节点变为master节点,另一个节点变成backup节点。
同时master节点开始向外发布广播,如果master节点宕机,那么广播就会停止,
此时backup收不到广播,就会去获得节点连接,实现双机热备。
因为在Keepalived一方面把MyCat端口的请求映射到swarm集群中的虚拟IP。
但是在swarm集群外部,我们是没有办法访问到swarm集群的,因此需要在宿主机上安装keepalived,然后把宿主机的某个端口映射到swarm集群中的虚拟IP中的端口。
这样才可以实现双机热备
二.Keepalived在Docker容器的配置
首先,因为keepalived端口发送广播是VRRP协议的