环境: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)的更多相关文章

  1. Haproxy+Keepalived搭建Weblogic高可用负载均衡集群

    配置环境说明: KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G  系统盘20G cpu 4核 Haproxy keepalived 2台 192.168.1.10 192 ...

  2. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

  3. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

  4. LB 高可扩展性集群(负载均衡集群)

    一.什么是负载均衡 首先我们先介绍一下什么是负载均衡: 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载, ...

  5. 负载均衡集群企业级应用实战—LVS

    一.负载均衡集群介绍 1.集群 ① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技 ...

  6. 实现基于LVS负载均衡集群的电商网站架构

    背景 上一期我们搭建了小米网站,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法 ...

  7. LVS负载均衡集群

    回顾-Nginx反向代理型负载 负载均衡(load balance)集群,提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用 ...

  8. 负载均衡集群中的session解决方案【转】

    通常面临的问题 从用户端来解释,就是当一个用户第一次访问被负载均衡代理到后端服务器A并登录后,服务器A上保留了用户的登录信息:当用户再次发送请求时, 根据负载均衡策略可能被代理到后端不同的服务器,例如 ...

  9. 项目实战:负载均衡集群企业级应用实战—LVS详解

    目录 一.负载均衡集群介绍 二.lvs 的介绍 三.LVS负载均衡四种工作模式 1.NAT工作模式 2.DR工作模式 3.TUN工作模式 4.full-nat 工作模式 5.四者的区别 四.LVS i ...

  10. keepalived + nginx 搭建负载均衡集群

    第一章 keepalived 1.1 keepalived 服务说明 Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现 ...

随机推荐

  1. Mysql实战45讲 06讲全局锁和表锁:给表加个字段怎么有这么多阻碍 极客时间 读书笔记

    Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.My ...

  2. 用Beamer做Slides

    学术用幻灯片,首选还是latex.但是问题来了,Beamer这个latex幻灯模板还需要很多自定义设置.于是找了网上一些自己觉得好的例子. http://www.latexstudio.net/ind ...

  3. HTML基础——网站首页显示页面

    1.表格标签: border设置边框,align设置位置(居中等),bgcolor设置背景颜色,cellspacing设置边框之间的空隙,cellpadding设置边框与里面内容的间距. table表 ...

  4. Good Bye 2014 B. New Year Permutation 【传递闭包 贪心】

    解题思路:给出一列数an,再给出一个矩阵d[i][j],在满足d[i][j]=1的情况下,称a[i]和a[j]可以交换,问经过交换最后得到字典序最小的数列a[n] 首先是贪心的思想,大的能换就换到后面 ...

  5. js表格隔行换色和hover效果

    <!--js效果--> <script src="js/jquery.min.js" language="javascript">< ...

  6. axios的坑

    1.axios默认发送application/json 格式 https://www.cnblogs.com/qdcnbj/p/8143155.html 资料: https://www.npmjs.c ...

  7. Linux系统之间文件传输 scp 命令

    个人使用记录 scp /home/liwm/Downloads/mysql-5.5.32-linux2.6-x86_64.tar.gz root@192.168.122.3:/home/oldboy/ ...

  8. 解决Vue引入百度地图JSSDK:BMap is undefined 问题

    百度地图官网文档介绍使用JSSDK时,仅提供了2种引入方式: script引入 异步加载 解决跨域问题,实例调用百度地图 但vue项目中仅某一两个页面需要用到百度地图,所以不想在 index.html ...

  9. CSS 子元素选择器

    所有选择器参考手册:http://www.w3school.com.cn/cssref/css_selectors.asp 1)子元素选择器 参考链接:http://www.w3school.com. ...

  10. python set元素访问

    python中集合set主要利用其唯一性,及并集|.交集&等操作,但不可以直接通过下标进行访问,必须访问时可以将其转换成list再访问 x={1,2,5} y=list(x) a=y[1] a ...