负载均衡集群总结(Haproxy)

Posted zuoandfuturegirl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡集群总结(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

HaProxy

 


 

HaProxy、Lvs、nginx

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

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

     HaProxy基于Tcp可以代理mysql

    下载地址:www.haproxy.org(FQ去下载,之后上传到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 #负载机器,多个往下排

  

   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)的主要内容,如果未能解决你的问题,请参考以下文章

Haproxy-10万并发级别负载均衡器

Haproxy-10万并发级别负载均衡器

haproxy+keepalived实现高可用负载均衡web集群

Haproxy 构建负载均衡集群

haproxy实现负载均衡集群

HAProxy负载均衡原理及企业级实例部署haproxy集群