Mycat双主热备搭建高可用架构

1.Mycat架构

首先看一下单个mycat架构图,一个mycat下面分为两个分片,两个分片采用auto-sharding-long分片规则,0-1000w:分片1 1000w-2000w:分片2 。分片1又实现读写分离。
Mycat双主热备搭建高可用架构

2.Mycat的HA

  • 互联网时代对系统可靠性要求高;
  • 避免单点故障
  • 系统应用、数据库、缓存都是双节点

3.Mycat的HA的架构图
Mycat双主热备搭建高可用架构
4,两台mycat确保配置信息一致,安装haproxy,编辑/etc/haproxy/haproxy.cfg:

defaults mode :http改为tcp,haproxy可以支持tcp和http协议,nginx只能支持http协议。在这里mycat使用tcp进行通信。
backend app 值留下两个
server app1 192.168.0.135:8066 check
server app2 192.168.0.137:8066 check

5.分别启动两台haproxy,使用Navicat连接haproxy连接成功则是配置正确。

haproxy -f /etc/ha[roxy.haproxy.cfg
通过Navicat连接haproxy使用haproxy.cfg中配置的端口5000来连接

6.分别安装两台的keepalived

yum search keepalived
yum install keepalived.x86_64

7.编辑keepalived配置文件

vim /etc/keepalived/keepalived.conf
注释掉vrrp_strict,vrrp_strict会影响虚拟ip的连接
删除无用的模块,只保留global_defs、vrrp_instance_VI_1、virtual_server

vrrp_instance_VI_1模块配置文件如下

state MASTER #指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUP
interface ens33 #网卡设置,lvs需要绑定在网卡上,realserver绑定在回环口。区别:lvs对访问为外,realserver为内不易暴露本机信息
virtual_router_id 51 #虚拟路由标识,是一个数字,同一个vrrp 实例使用唯一的标识,MASTER和BACKUP 的 同一个 vrrp_instance 下 这个标识必须保持一致
priority 100 #定义优先级,数字越大,优先级越高。
advert_int 1 #设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
authentication { #设置验证类型和密码,两个节点必须一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
192.168.0.135
}
track_script { #脚本监控状态
chk_haproxy_service #可加权重,但会覆盖声明的脚本权重值。 chk_nginx_service weight -20
}

脚本监控状态:

vrrp_script chk_haproxy_service { #VRRP 脚本声明
script “killall -0 haproxy” #周期性执行的脚本,是检查haproxy进程是否存在,存在返回0
interval 3 #运行脚本的间隔时间,秒
}

这里killall -0 命令是检测haproxy是否存活,echo $?返回0则存在
8.配置好后启动keepalived

service start keepalived
通过Navicat连接keepalived,端口为配置文件中的6000

9.检查高可用是否正常,杀掉其中一个获得vip192.168.0.199的haproxy进程,观察另一台haproxy是否获得vip绑定。
至此搭建完毕…