• 负载均衡集群总结(Haproxy)


    环境:Centos 6.9,Mysql 8.0


     首先要先配置mysql主从复制集,可以参考我的上一篇>>Mysql 主从复制总结(详细)

           我的主节点在(master):192.168.110.76

           两个从节点在(slave):192.168.110.77,192.168.110.78

        负载均衡节点(proxy):192.168.110.69

      mysql8.0和5.7区别不大,8.0在配置主从的时候默认开启了binlog,5.7手动起一下就好,下文有启动方法。

    HaProxy


    HaProxy、Lvs、Nginx

       Nginx基于http 在web领域,路径解析功能很强大。曾经自己手动搭载过,不复杂。性能最低

         Lvs(Linux 虚拟服务)性能最高

         HaProxy基于Tcp可以代理mysql

        下载地址:www.haproxy.org(翻墙去下载,之后上传到master) 我下载的是1.7.10

    步骤


      首先,在主节点master创建用户授予权限,并确保可以同步到从节点。

      create user 'test'@'192.168.110.%' identified by 'Test_123456';

      grant all on *.* to 'test'@'192.168.110.%';

      解压好haproxy文件准备编译安装它 tar -zxvf haproxy-1.7.10.tar.gz 

      

          然后使用 make TARGET=linux26(linux内核)

           

      提示没有安装gcc。安装:yum install gcc-c++

      安装完成后从新进行编译。(很快)

      编译成功下一步,进行安装 make install PREFIX=/usr/local/haproxy

           接下来进入/usr/local/haproxy,创建一个conf文件夹放置我们的配置文件。mkdir conf ; cd conf ; touch haproxy.cnf;vim haproxy.cnf

    global
            daemon   #后台方式运行
            nbproc 1
            pidfile  /usr/local/haproxy/conf/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.0.0.0端口号可以是0~6553之间,要避免端口冲突
    	mode tcp		#链接的协议tcp
    	#maxconn 4086
    	#log 127.0.0.1 local0 debug
    	server s1 192.168.110.77:3306 #负载机器
    	server s2 192.168.119.78:3306 #负载机器,多个往下排 后面加check port 3306就会心跳检查
    listen admin_stats
        bind 0.0.0.0:8888
        mode http
        stats uri /test_haproxy
        stats auth admin:admin

      

       echo 1 > haproxy.pid

       ./sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cnf 启动haproxy  配置完成!

      数据库访问连接访问的是proxy结点的ip,用户名和密码是刚创建的test。

      

    问题


      可能是因为我的mysql使用的是8.0,在远程连接的时候出现

      authentication plugin 'caching_sha2_password' cannot be loaded的错误。

          有两种解决办法:

       1、ALTER USER 'username'@'IP' IDENTIFIED WITH mysql_native_password BY 'password';

       2、修改/etc/my.cnf

       default_authentication_plugin=mysql_native_password  并从新启动mysql服务。

    Haproxy算法有8种


    一、roundrobin,表示简单的轮询,负载均衡基本都具备的。

    二、static-rr,表示根据权重。

    三、leastconn,表示最少连接者优先。

    四、source,表示根据请求源IP。

    五、url,表示根据请求的url。

    六、url_param,表示根据请求的URI参数'balance url_param' requires an URL parameter name

    七、hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求

    八、rdp-cookie,表示根据cookie(name)来锁定并哈希每一次tcp请求

  • 相关阅读:
    Office加载项安装
    Office加载项
    centos部署vue项目
    centos系统下安装Nginx
    MongoDB 安装笔记
    CDN基本工作过程
    前端常见跨域解决方案(全)
    JS 扁平化(flatten) 数组
    console.log 打印的值不准确
    arr.flat(Infinity)数组扁平化
  • 原文地址:https://www.cnblogs.com/zzuuoo666/p/8908861.html
Copyright © 2020-2023  润新知