zoukankan      html  css  js  c++  java
  • 用Haproxy给MySQL做负载均衡

    1.安装

    # 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配置文件。内容为:

    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 启动:
    [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
    再次查看:
    33333333
    可以看到检查出了mysql1不可用,service mysqld start 恢复mysql1的实例。
    44444
     虽然测试成功 但是还有一个问题 就是现在访问数据库的用户root不能有密码, 加上了密码就显示数据库DOWN 要想数据库加密码 需要将
      option mysql-check user root 这行注释点
  • 相关阅读:
    python的函数
    Python的条件语句和循环语句
    Python的输入与输出
    Python变量和类型
    Python的运算符
    Python的注释
    pycharm基本使用
    推特史上最大规模黑客入侵案:17岁问题少年的隐秘人生
    进程和线程的区别及线程的介绍
    python接口自动化42
  • 原文地址:https://www.cnblogs.com/yixiwenwen/p/3580931.html
Copyright © 2011-2022 走看看