负载均衡集群总结(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请求
负载均衡集群总结(Haproxy)的更多相关文章
- Haproxy+Keepalived搭建Weblogic高可用负载均衡集群
配置环境说明: KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G 系统盘20G cpu 4核 Haproxy keepalived 2台 192.168.1.10 192 ...
- Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived
文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...
- 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群
高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...
- LB 高可扩展性集群(负载均衡集群)
一.什么是负载均衡 首先我们先介绍一下什么是负载均衡: 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载, ...
- 负载均衡集群企业级应用实战—LVS
一.负载均衡集群介绍 1.集群 ① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技 ...
- 实现基于LVS负载均衡集群的电商网站架构
背景 上一期我们搭建了小米网站,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法 ...
- LVS负载均衡集群
回顾-Nginx反向代理型负载 负载均衡(load balance)集群,提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用 ...
- 负载均衡集群中的session解决方案【转】
通常面临的问题 从用户端来解释,就是当一个用户第一次访问被负载均衡代理到后端服务器A并登录后,服务器A上保留了用户的登录信息:当用户再次发送请求时, 根据负载均衡策略可能被代理到后端不同的服务器,例如 ...
- 项目实战:负载均衡集群企业级应用实战—LVS详解
目录 一.负载均衡集群介绍 二.lvs 的介绍 三.LVS负载均衡四种工作模式 1.NAT工作模式 2.DR工作模式 3.TUN工作模式 4.full-nat 工作模式 5.四者的区别 四.LVS i ...
- keepalived + nginx 搭建负载均衡集群
第一章 keepalived 1.1 keepalived 服务说明 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现 ...
随机推荐
- zzuoj--10424--无聊的课(简单几何)
10424: 无聊的课 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 81 Solved: 16 [Submit][Status][Web Boar ...
- 26.boost文件库
#define _CRT_SECURE_NO_WARNINGS #include <boost/filesystem/operations.hpp> #include <boost/ ...
- 解决django.db.utils.InternalError: (1049, "Unknown database 'exam_db'")
先检查seeting数据库配置DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'eaxm_db', ' ...
- 添加ArcGIS数据
加载arcgis server的rest服务瓦片数据:ol.layer.Tile+ol.source.TileArcGISRest 加载arcgis online的在线瓦片数据:ol.layer.Ti ...
- 关于JavaScript中this的指向,你知晓几分?请速来围观!
---恢复内容开始--- 一.this是什么东东? this是指包含它的函数作为方法被调用时所属的对象.这句话理解起来跟卵一样看不懂,但是如果你把它拆分开来变成这三句话后就好理解一点了. 1.包含它的 ...
- 微信小程序优化
setData setData 是小程序开发中使用最频繁的接口,也是最容易引发性能问题的接口.在介绍常见的错误用法前,先简单介绍一下 setData 背后的工作原理. 工作原理 小程序的视图层目前使用 ...
- PHP JWT初识
一直没有好好看过jwt,直到前两天要做web验证,朋友给我推荐了jwt.才发现jwt已经被大家广泛的应用了.看来我有点out了.哈哈,趁着这个世界来好好看看这个. JWT(JSON Web Token ...
- GIT配置多用户
在公司工作的时候有时候想提交一点代码到github上,然后一台电脑上就需要配置两个账号分别访问github和公司的gitlab 1. 分别生成两个key 为什么要生成两个key的原因我也不清楚,望路过 ...
- 【BZOJ 1293】[SCOI2009]生日礼物
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 显然的滑动窗口题. (尺取法 如果l..i这一段已经有k种珍珠了. 那么就尝试把l++; (即把l这个影响尝试去掉一下 如果不足k种 ...
- Linux入门基础(一)
UNIX/Linux 本身是没有图形界面的,我们通常在 UNIX/Linux 发行版上看到的图形界面实际都只是运行在 Linux 系统之上的一套软件XFree86,现在则是 xorg(X.Org),而 ...