负载均衡集群,Haproxy

对于双主情况,可以实现负载均衡 和 故障转移;但是 对于一主多从的情况,主挂掉了,选举功能 没法实现;

认识HaProxy:(性能中等)

        基于TCP协议的,代理MySql;所需要的机器不那么多;

Nginx:(性能最低)

        基于Http协议的,只能代理Web应用

LVS:(性能最高)

        Linux的虚拟服务,缺点:需要的机器非常多,可配置性 不高

Haproxy的安装:

1,下载地址:https://www.tapd.cn/22121161/documents/show/1122121161001000014

2,创建用户名和密码(所有的Mysql节点上都需要一个通用的用户名和密码),并赋予权限;

3,安装haproxy:

        tar -zxvf haproxy-1.7.3.tar.gz

         cd haproxy-1.7.3

         make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy

        ## 参数说明
        ##TARGET=linux26 #内核版本,使用uname -r查看内核,

            如:2.6.18-371.el5,此时该参数就为        linux26;内核大于2.6.28的用:TARGET=linux2628
        ## ARCH=x86_64 #系统位数
        ## PREFIX=/usr/local/haprpxy #/usr/local/haprpxy为haprpxy安装路径

         make install PREFIX=/usr/local/haproxy

4.创建haproxy.cfg文件

         mkdir /usr/local/haproxy/etc
         vi /usr/local/haproxy/etc/haproxy.cfg

所添加的内容:

    
global
        daemon # 后台方式运行
        nbproc 1
        pidfile /usr/local/haproxy/etc/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     #这里是配置负载均衡,test1是名字,可以任意
        bind 0.0.0.0:3306    #这里是监听的IP地址和端口,端口号可以在0-65535之间,要避免端口冲突
        mode tcp   #连接的协议,这里是tcp协议
        #maxconn  4086
        #log 127.0.0.1  local0  debug
        server s1 47.98.172.198:3306  #负载的机器
        server s2 47.97.121.246:3306  #负载的机器,负载的机器可以有多个,往下排列即可

5,在/usr/local/haproxy/etc 目录下【和haproxy.cfg文件中的属性pidfile 一致】创建 haproxy.pid文件,并设置值:

        echo  1 > haproxy.pid

6,启动haproxy:

         ../sbin/haproxy -f    /usr/local/haproxy/etc/haproxy.cfg

特别注意:

        如果在配置文件 haproxy.cfg 中配置了 bind 47.98.172.198:3306  ,指定 了具体的ip,容易出一下问题:

        Starting proxy test1: cannot bind socket [47.98.172.198:3307]

        解决办法:把具体的ip换成:  0.0.0.0

参考网址:https://blog.csdn.net/xuxile/article/details/78871380

    

猜你喜欢

转载自my.oschina.net/u/3693993/blog/1795298