负载均衡集群总结(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集群系统中各个服务节点的状态,后来又加入了可以实现 ...
随机推荐
- 你不知道的JavaScript(四)数值
JS中只有一种数值类型,即number.不管是整数还是小数都属于number类型,事实上JS并不区分小数和整数. <div> <script type="text/java ...
- java中三个类别加载器的关系以及各自加载的类的范围
Java在需要使用类别的时候,才会将类别加载,Java的类别载入是由类别载入器(Class loader)来达到的,预设上,在程序启动之后,主要会有三个类别加载器:Bootstrap Loader.E ...
- Xshell调整终端显示的最大行数(缓冲区)
1 选择会话,按顺序点击文件->属性 ,打开"会话属性"窗口 如下 在"会话属性"窗口中选择“终端” 修改缓冲区大小的值:其范围为0~2147483647 ...
- ZBrush中Zproject与SubTool的综合应用
在ZBrush中有很多工具也需要配合子物体工具来使用,如笔刷中的Zproject(投射笔刷)就需要子物体工具来配合使用,本文将讲解一下它的用法. 1. 首先创建一个平面,在Tool(工具)面板中选择P ...
- WordPress 不错的插件
Akismet – 防止垃圾评论 WP-PostViews Plus - 页面访问量统计 All in One SEO Pack – 搜索引擎优化的插件,自动优化搜索引擎. WP Super Cach ...
- [arc086e]snuke line
题意: 有n个区间,询问对于$1\leq i\leq m$的每个i,有多少个区间至少包含一个i的倍数? $1\leq N\leq 3\times 10^5$ $1\leq M\leq 10^5$ 题解 ...
- json对象与其字符串之间的转换
在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键.例如: JSON字符串:var str1 = '{ &qu ...
- 【jQuery03】简单的选项卡切换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【Henu ACM Round#24 E】Connected Components
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 要求把连续的一段li..ri的边全都删掉. 然后求剩下的图的联通数 如果暴力的话 复杂度显然是O(k*m)级别的. 考虑我们把li. ...
- 2015 Multi-University Training Contest 1 hdu 5290 Bombing plan
Bombing plan Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)To ...