JavaEE:搭建Keepalived+Haproxy+MyCat

说明(MyCat的HA):

2台MyCat:2台MyCat一致的配置,同时连接到MySQL1和MySQL2。
2台Haproxy:2台Haproxy一致的配置,同时连接到MyCat1和MyCat2。
2台Keepalived:1台主(MASTER)Keepalived,1台备(BACKUP)Keepalived,当主Keepalived宕机时虚拟IP自动部署到备Keepalived(反之一样),当主Keepalived绑定的Haproxy主机宕机时虚拟IP自动部署到备Keepalived(反之一样)。

一、MyCat安装:

MySQL1主机:192.168.233.141:3066
MySQL2主机:192.168.233.142:3066
MyCat1主机:192.168.233.143:8066
MyCat2主机:192.168.233.145:8066

1.安装/配置/启动MyCat(第一、二、四章):

https://blog.csdn.net/a526001650a/article/details/103949574

二、Haproxy安装/配置:

在以下2台主机上安装/配置haproxy(配置一致):

haproxy1主机:192.168.233.141:5000
haproxy2主机:192.168.233.142:5000

1.安装haproxy:

[root@localhost ~]# yum -y install haproxy.x86_64

2.配置haproxy路由到2台MyCat主机(cd /etc/haproxy):

[root@localhost haproxy]# vi haproxy.cfg

内容如下:

defaults
    mode                    tcp      #改为TCP协议
    ...
    option                  tcplog   #改为tcplog
    ...
    #注释掉以下2条HTTP的配置
    #option http-server-close
    #option forwardfor       except 127.0.0.0/8

frontend  main *:5000  #注释掉以下3条HTTP的配置
    #acl url_static       path_beg       -i /static /images /javascript /stylesheets
    #acl url_static       path_end       -i .jpg .gif .png .css .js
    #use_backend static          if url_static

#...
backend app
    balance     roundrobin    #负载均衡为轮询
    server  app1 192.168.233.143:8066 check    #配置MyCat1主机的IP+端口
    server  app2 192.168.233.145:8066 check    #配置MyCat2主机的IP+端口

3.启动haproxy(cd /etc/haproxy):

[root@localhost haproxy]# haproxy -f haproxy.cfg

4.查看进程:

[root@localhost haproxy]# ps -ef|grep haproxy

5.使用Navicat连接远程的haproxy主机(此处测试了haproxy1主机,实际访问的是MyCat逻辑库):

(1)打开Navicat软件,点击"连接"按钮,在下拉列表中选择"MySQL...":

  

(2)新建连接,填入远程haproxy的主机IP、haproxy端口(5000)、MyCat登录用户+密码,确定:

 三、keepalived主备安装/配置:

在以下2台主机上安装/配置keepalived:

keepalived1主机(MASTER):192.168.233.141:
keepalived2备机(BACKUP):192.168.233.142:

1.在2台主机上安装keepalived(第一章):

https://blog.csdn.net/a526001650a/article/details/120695963

2.配置keepalived1主机+keepalived2备机:

(1)配置keepalived1主机(cd /etc/keepalived,vi keepalived.conf):

global_defs {
   ... #其他配置保持原样
   #vrrp_strict      #注释此行
   ... #其他配置保持原样
}
vrrp_script haproxy_check {   #监测haproxy是否宕机,haproxy_check为自定义方法名
     script "killall -0 haproxy"                     #杀死haproxy所有进程
     interval 2                                      #定期执行间隔时间,单位为秒
}
vrrp_instance VI_1 {        #与第2台VI_1配套
    state MASTER            #设置为第1台MASTER主机,与第2台BACKUP对应
    interface ens33         #设置绑定的网卡,此处网卡为eth0
    virtual_router_id 51    #第1个虚拟路由id,此处和第2台VI_1的virtual_router_id一样
    priority 100            #设置权重,MASTER主机值要大于BACKUP备机值
    advert_int 1            #主机与备机同步检查间隔,单位为秒
    authentication {        #设置认证权限
        auth_type PASS      #认证类型为密码
        auth_pass 1234      #具体密码
    }
    virtual_ipaddress {
        192.168.233.100     #虚拟IP,此处和第2台VI_1的virtual_ipaddress一样,默认绑定第1台MASTER,第1台MASTER宕机时绑定第2台BACKUP
    }
    track_script {
        haproxy_check    #调用上述定义的haproxy_check方法
    }
}
virtual_server 192.168.233.100 8000 { #配置虚拟IP与端口
    delay_loop 6            #haproxy健康检查时间,单位为秒
    lb_algo rr              #负载均衡为轮询方式
    lb_kind NAT             #模式为NAT
    persistence_timeout 5   #会话持久化间隔时间
    protocol TCP            #协议 -t
 
    real_server 192.168.233.141 5000 {  #haproxy1主机的IP与端口
        weight 1
    }
}

(2)配置keepalived2备机(cd /etc/keepalived,vi keepalived.conf):

global_defs {
   ... #其他配置保持原样
   #vrrp_strict      #注释此行
   ... #其他配置保持原样
}
vrrp_script haproxy_check {   #监测haproxy是否宕机,haproxy_check为自定义方法名
     script "killall -0 haproxy"                     #杀死haproxy所有进程
     interval 2                                      #定期执行间隔时间,单位为秒
}
vrrp_instance VI_1 {
    state BACKUP               #设置为BACKUP备机
    interface ens33            #设置绑定的网卡
    virtual_router_id 51       #备机此值要和主机一样
    priority 80                #设置权重,BACKUP备机值要低于MASTER主机值
    advert_int 1               #备机与主机同步检查间隔,单位为秒
    authentication {           #设置认证权限
        auth_type PASS         #认证类型为密码
        auth_pass 1234         #具体密码
    }
    virtual_ipaddress {
        192.168.233.100        #生成虚拟IP,备/主机此处保持一致,主机宕机时绑定备机
    }
    track_script {
        haproxy_check    #调用上述定义的haproxy_check方法
    }
}
virtual_server 192.168.233.100 8000 {  #配置虚拟IP与端口
    delay_loop 6            #haproxy健康检查时间,单位为秒
    lb_algo rr              #负载均衡为轮询方式
    lb_kind NAT             #模式为NAT
    persistence_timeout 5   #会话持久化间隔时间
    protocol TCP            #协议 -t
 
    real_server 192.168.233.142 5000 {  #haproxy2主机的IP与端口
        weight 1
    }
}

3.安装killall命令软件:

[root@localhost keepalived]# yum install -y psmisc.x86_64

4.启动keepalived1主机+keepalived2备机(cd /etc/keepalived/):

[root@localhost keepalived]# systemctl start keepalived

5.查看进程:

[root@localhost keepalived]# ps -ef|grep keepalived

6.使用Navicat连接远程的keepalived虚拟IP(实际访问的是MyCat逻辑库):

(1)打开Navicat软件,点击"连接"按钮,在下拉列表中选择"MySQL...":

(2)新建连接,填入远程keepalived的虚拟IP、keepalived端口(8000)、MyCat登录用户+密码,确定:

四、所有连接如图所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值