用Haproxy给MySQL做负载均衡

1.安装

1
2
3
4
5
# wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz
# tar zcvf haproxy-1.4.24.tar.gz
# cd haproxy-1.4.24
# make TARGET=linux26 PREFIX=/usr/local/haproxy                                #将haproxy安装到/usr/local/haproxy
# make install PREFIX=/usr/local/haproxy

 

2.配置

在/usr/local/haproxy/etc/下新建haproxy.cfg配置文件。内容为:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
global
        log 127.0.0.1   local0 info    #日志相关
        log 127.0.0.1   local1 notice
        maxconn 4096
        chroot /usr/local/haproxy
        uid root
        gid root
        daemon
        #debug
        #quiet
        pidfile /usr/local/haproxy/haproxy.pid
 
defaults
        log     global
        mode    http
        #option httplog
        option  dontlognull
        retries 3
        option redispatch
        maxconn         2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000
 
listen  mysql
        bind 0.0.0.0:23306    #代理端口
        mode tcp              #模式 TCP
        option mysql-check user root   #mysql健康检查  root为mysql登录用户名
        balance roundrobin            #调度算法
        server mysql1 192.168.137.122:3306 weight 1 check  inter 1s rise 2 fall 2 #健康检查加上check
        server mysql2 192.168.137.46:3306 weight 1 check  inter 1s rise 2 fall 2
listen stats     #监控
           mode http
           bind 0.0.0.0:8888
           stats enable
           stats uri /dbs
           stats realm Global\ statistics
           stats auth admin:admin

说明:mysql负载均衡要用tcp模式,在使用负载均衡前,需要mysql能让haproxy的ip远程访问,inter表示健康检查的间隔,单位为毫秒 可以用1s等,fall代表健康检查失败2回后放弃检查。rise代表连续健康检查成功2此后将认为服务器可用。默认的,haproxy认为服务时永远可用的,除非加上check让haproxy确认服务是否真的可用。

调度算法:

roundrobin :
    依照权重一次调度服务,当服务器的处理时间公平分配时这是最快的最顺畅的算法 。


3 启动:
1
2
3
4
5
6
7
8
[root@web2 etc]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg
[root@web2 etc]# cd ../sbin/
[root@web2 sbin]# ls
haproxy
[root@web2 sbin]# ps -ef | grep haproxy
root      4223     1  0 18:12 ?        00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg
root      4228  3754  0 18:12 pts/0    00:00:00 grep haproxy
[root@web2 sbin]#


4 登录浏览器查看:http://192.168.137.46:8888/dbs输入admin admin登录



停掉一个sql节点:service mysqld stop
再次查看:

 

可以看到检查出了mysql1不可用,service mysqld start 恢复mysql1的实例。

 

 

用Haproxy给MySQL做负载均衡,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。