haproxy实现mysql从库负载均衡

Posted Tony-Tse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haproxy实现mysql从库负载均衡相关的知识,希望对你有一定的参考价值。

本文主要讲述通过haproxy实现mysql从库间的负载均衡,至于mysql主从的搭建,本文不再重述,可以参考我之前写的博客。

1.首先下载haproxy包

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.13.tar.gz

 

2.安装

tar zxvf haproxy-1.4.13.tar.gz

cd haproxy-1.4.13/

make TARGET=linux26 PREFIX=/usr/local/haproxy  ##我的系统内核为2.6,所以target=linux26

make install PREFIX=/usr/local/haproxy

 

3.进行配置

mkdir /etc/haproxy

touch /etc/haproxy/haproxy.cfg

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 2               #两次连接失败就认为是服务器不可用,也可以通过后面设置
        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]


########test1配置#################
listen test1
        bind 0.0.0.0:3306
        mode tcp
        #maxconn 4086
        #log 127.0.0.1 local0 debug
        server s1 192.168.103.59:3306
        server s2 192.168.103.52:3306
########frontend配置##############
 
在test1配置下添加server s1 192.168.103.59:3306和server s2 192.168.103.52:3306,即mysql从库的ip和端口号,
多个从库在下面继续添加。
 

4.启动haproxy

解压目录下执行haproxy -f /etc/haproxy/haproxy.cfg
 
先将占用3306端口的程序停掉
haproxy -f /etc/haproxy/haproxy.cfg
(若提示错误:bash: haproxy: 未找到命令
执行 1 cd /usr/local/haproxy/sbin
         2  ./haproxy -f /etc/haproxy/haproxy.cfg     
  
)
 

5.测试

使用navicat连接安装haproxy的机器
第一次连的52
 
关闭连接,重新连103.55
 
可见实现了mysql的负载均衡。
 

6.其他注意事项

查看haproxy的进程
ps -ef | grep haproxy
 
kill -9 28924
干掉haproxy运行的进程
 
再连55失败
 
查看所有进程
ps -ef
 
修改配置文件:
重新启动haproxy:
 
 

以上是关于haproxy实现mysql从库负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

haproxy实现mysql多slave读负载均衡

使用HAProxy实现MySQL多slave的读负载均衡

05.haproxy+mysql负载均衡 整合 redis集群+ssm

Docker+Haproxy实现MongoDB数据库负载均衡

HAProxy实现RabbitMQ负载均衡

HAProxy实现Mysql Cluster负载均衡