配置Haproxy代理实现MySQL从服务器的负载均衡 – 21运维
通知: .-...

配置Haproxy代理实现MySQL从服务器的负载均衡

Haproxy 21运维 1652浏览 0评论

之前的文章配置过haproxy以及简单使用,具体可以参考《Centos系统环境下进行负载均衡软件Haproxy安装及配置》, 今天文章记录下通过配置Haproxy代理实现MySQL从服务器的负载均衡。

haproxy本身支持TCP协议的负载均衡转发,对于各种基于tcp的软件进行负载均衡比如mysql,之前配置的web负载均衡都是基于应用层,今天记录下tcp的。
环境准备:
centos 6.x三台,具体如下:
IP:192.168.1.104   角色:haproxy,mysql_master
IP:192.168.1.122   角色:mysql_slave
IP:192.168.1.123   角色:mysql_slave
说明:
(1)mysql主从安装这里不单独配置写出,配置非常简单,可以参考之前的博客文章《Linux系统如何设置mysql数据库主从以及互为主从
(2)由于1.104已经配置了mysql_master占用了3306端口,haproxy我们启用3307端口测试。

一,配置haproxy

global                                                     
    log         127.0.0.1 local2                     
    chroot      /usr/share/haproxy
    pidfile     /var/run/haproxy.pid         
    maxconn     4000                                
    user        haproxy
    group       haproxy                        
    daemon                                               
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]
listen test1
        bind 192.168.1.104:3307
        mode tcp
        #maxconn 4086
        #log 127.0.0.1 local0 debug
        server s1 192.168.1.122:3306
        server s2 192.168.1.123:3306

二,测试mysql的负载均衡。
利用navicat连接192.168.1.104的3307端口,理论上我们会连接到后端的122或者123的mysql上,为了区别,我们分别从mysql_slave单独建立两个库以便区分:
192.168.1.122 mysql_slave建立测试数据库web122;
192.168.1.123 mysql_slave建立测试数据库web123;
(具体sql语句:create database  web122/123 default charset utf8;)
连接测试:
1

连接进入查看:
1
查看我们连接到了192.168.1.123 mysql_slave,看到了建立的测试库web123.

断开连接,重新连接:
2
查看我们连接到了192.168.1.122 mysql_slave,看到了建立的测试库web122.

总结,配置Haproxy代理实现MySQL从服务器的负载均衡已经完成。后续需要根据配置文件进行一些参数的优化或者架构的优化,比如配置keepalive实现高可用、根据mysql_slave配置分配权重等等,具体情况具体分析。

转载请注明:21运维 » 配置Haproxy代理实现MySQL从服务器的负载均衡

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址