HAProxy+keepalived+MySQL 实现MHA中slave集群负载均衡的高可用

HAProxy+keepalived+MySQL实现MHA中slave集群的负载均衡的高可用

当slave集群很大时,单点的haproxy如果挂了,可能会影响业务,所以可以部署两台haproxy,

再使用keepalived对这两台haproxy做分发,防止haproxy单点故障。

Ip地址划分:

240    mysql_b2

242    mysql_b1

247    haproxy1

249    haproxy2

243    VIP (注:此VIP不是master的,是keepalived的VIP,web通过该VIP分发给haproxy,haproxy分发给后端slave集群)

248    client

 

1、安装HAProxy

yum install gcc -y

make TARGET=linux26 PREFIX=/usr/local/haproxy

make install PREFIX=/usr/local/haproxy

cp /usr/src/haproxy/haproxy-1.5.3/examples/haproxy.cfg /usr/local/haproxy/

cp /usr/src/haproxy/haproxy-1.5.3/examples/haproxy.init /etc/init.d/haproxy

chmod 755 /etc/init.d/haproxy

ln -s /usr/local/haproxy/sbin/* /usr/sbin/

mkdir /etc/haproxy

mkdir /usr/share/haproxy

ln -s /usr/local/haproxy/haproxy.cfg /etc/haproxy/

cd ..

 

1.2 设置配置文件

1.2.1 拷贝配置文件

[root@HAProxy_247 haproxy]# cp haproxy.cfg  /usr/local/haproxy/

cp: overwrite `/usr/local/haproxy/haproxy.cfg'? y

 

1.2.2  编辑配置文件

[root@HAProxy_247 haproxy]# vim /usr/local/haproxy/haproxy.cfg

注意修改RS的IP:

 

1.3 启动HAProxy服务

[root@HAProxy_247 haproxy]# service haproxy start

 

 

1.4 访问HAProxy的网页

http://localhost:8899/admin-status

用户名密码查看配置文件设置

 

1.5 客户端测试

 

 

2、安装配置keepalived

2.1 更新yum仓库

 略...

2.2 安装keepalived

yum install keepalived -y

 

2.3 修改247上配置文件(覆盖原配置文件即可)

注:keepalived工作机制--同一组(virtual_router_id)的keepalived互相检测存活,优先级高的作用时,优先级低的沉睡。当优先级高的宕掉时,优先级低的顶替其工作

复制代码
vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

 
vrrp_script chk_haproxy {

    script "/etc/keepalived/chk.sh"

    interval 2

}

 
vrrp_instance VI_1 {

    state BACKUP

    nopreempt

    interface eth0

    virtual_router_id 51      #定义分组ID,同一组ID相同

    priority 100    #优先级

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass abcd

    }

    virtual_ipaddress {

        192.168.18.243      #VIP

    }

    track_script {

        chk_haproxy

    }

    notify_backup "/etc/init.d/haproxy restart"      //切换主/备/出错时执行的脚本

    notify_fault "/etc/init.d/haproxy stop"

}
复制代码

 

 

2.4 修改249上的主配置文件

复制代码
! Configuration File for keepalived

 
vrrp_script chk_haproxy {

    script "/etc/keepalived/chk.sh"

    interval 2

}

 
vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 51

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass abcd

    }

    virtual_ipaddress {

        192.168.18.243

    }

    track_script {

        chk_haproxy

    }

    notify_backup "/etc/init.d/haproxy restart"

    notify_fault "/etc/init.d/haproxy stop"

}
复制代码

 

2.5 编写脚本,并放到指定位置

vim  /etc/keepalived/chk.sh

#!/bin/bash

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then    #判断haproxy是否存活,如果宕了,停止keepalived服务

       /etc/init.d/keepalived stop

fi

chmod +x chk.sh

 

2.6 开启keepalived并验证

service keepalived restart

开始时,VIP绑定到247的,249没有

 

 

在247上关闭HAProxy后:

VIP绑定到249了,247没有

 

 

2.7 客户端测试

通过keepalived的VIP访问测试

 

 

posted @   叮伱格斐呃  阅读(1700)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
Live2D
欢迎阅读『HAProxy+keepalived+MySQL 实现MHA中slave集群负载均衡的高可用』
点击右上角即可分享
微信分享提示