环境: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. [JZOJ 5910] [NOIP2018模拟10.18] DuLiu 解题报告 (并查集+思维)

    题目链接: https://jzoj.net/senior/#contest/show/2530/0 题目: LF是毒瘤出题人中AK IOI2019,不屑于参加NOI的唯一的人.他对人说话,总是满口垃 ...

  2. Kettle学习系列之Kettle的起源

    不多说,直接上干货! Kettle起源于十年以前,本世纪初.当时啊,ETL工具千姿百态,比较流行的工具有50个左右,ETL框架数量比工具还要多些. 根据这些工具的各自起源和功能可以分为以下4种类型,如 ...

  3. Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转

    原文来自:聊聊架构公众号 前面的文章中有说到微服务的通信方式,Martin Folwer 先生在他对微服务的定义中也提到“每个服务运行在其独立的进程中,服务与服务间采用 轻量级的通信机制 互相协作(通 ...

  4. android常用自动化测试框架

    目录: Monkey MonkeyRunner Instrumentation UiAutomator Espresso Selendroid Robotium Athrun Appium Monke ...

  5. Gram矩阵 迁移学习 one-shot 之类

    格拉姆矩阵是由内积空间中的向量两两内积而得.格拉姆矩阵在向量为随机的情况下也是协方差矩阵.每个数字都来自于一个特定滤波器在特定位置的卷积,因此每个数字代表一个特征的强度,而Gram计算的实际上是两两特 ...

  6. JDOM,dom4j方式解析XML

    <?xml version="1.0" encoding="UTF-8"?> <dataSources> <!-- 定义MySQL ...

  7. 4----COM:a Generative Model for group recommendation(组推荐的一种生成模型)

    1.摘要: 组推荐的一个挑战性问题:因为不同组的成员就有不同的偏好,如何平衡这些组员的偏好是一个难以解决的问题. 在本文中,作者提出了一个COM的概率模型来建立组活动生成过程. 直觉上: 一个组中的用 ...

  8. shell 文件中添加内容

    下文所有 1111  ,  2222 均为字符串 sed -i '/1111/i\2222' a.txt   在a.txt中找到所有符合1111得 前面加上2222 sed -i '/1111/a\2 ...

  9. vue项目打包后想发布在apache www/vue 目录下

    使用的是vue-element-admin做示例,可以参考Vue项目根据不同运行环境打包项目,其他项目应该大同小异. 使用vue-router的browserHistory模式,配置mode: 'hi ...

  10. caioj 1153 扩展欧几里德算法(解不定方程)

    模板题 注意exgcd函数要稍微记一下 #include<cstdio> #include<cctype> #include<algorithm> #define ...