Fork me on GitHub

HAProxy实现mysql负载均衡

安装

yum install haproxy

 

修改配置

vi /etc/haproxy/haproxy.cfg
 

配置如下


global
        daemon
        nbproc 1
        pidfile /var/run/haproxy.pid


defaults
        mode tcp               #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
        retries 3               #两次连接失败就认为是服务器不可用,也可以通过后面设置
        option redispatch       #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
        option abortonclose     #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
        maxconn 4096            #默认的最大连接数
        timeout connect 5000ms  #连接超时
        timeout client 30000ms  #客户端超时
        timeout server 30000ms  #服务器超时
        timeout check 2000      #=心跳检测超时
        log 127.0.0.1 local0 err #[err warning info debug]


listen configMysql
        bind 127.0.0.1:3306
        mode tcp
        maxconn 4086
        server s1 192.168.75.128:3306
        server s2 192.168.75.130:3306


 

启动

在解压目录下执行haproxy -f /etc/haproxy/haproxy.cfg

或者使用

/bin/systemctl start  haproxy.service

 

查看状态

/bin/systemctl status haproxy.service

 

需要注意的点:

1、端口3306不能被占用,如果本机有mysql,服务必须关闭。

2、/var/run/haproxy.pid的目录权限给够,如果存在haproxy.pid在第一次启动前必选删除。

3、其他错误请参考博客http://blog.csdn.net/aa168b/article/details/50372649

 

HAProxy厉害的点,不需要写mysql的健康检测,软件本身可以检测出mysql服务停止,然后切换到正常的服务器上,而且当mysql服务器重启之后,HAProxy不需要重启,也能识别并且切换上去。

posted @ 2017-03-05 16:13 LinkinStar 阅读(...) 评论(...) 编辑 收藏