首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

LVS+Keepalived实现mysql的负载均衡

2023-11-13 来源:花图问答
create table test( id int, name varchar(10));-- A中插入insert into test values(1,‘A‘);-- B中插入insert into test values(2,‘B‘);
技术图片

(2)编辑realserver脚本文件

①进入指定文件夹:cd /etc/init.d/

②创建脚本文件:vi realserver

技术图片
SNS_VIP=192.168.5.200/etc/rc.d/init.d/functionscase "$1" instart) ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP /sbin/route add -host $SNS_VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p >/dev/null 2>&1 echo "RealServer Start OK" ;;stop) ifconfig lo:0 down route del $SNS_VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;;*) echo "Usage: $0 {start|stop}" exit 1esacexit 0
技术图片

这里我们设置虚拟IP为:192.168.5.200

③保存脚本文件后更改该文件权限:chmod 755 realserver

④开启realserver服务:service realserver start

2.4 配置主负载服务器

关于keepalived相关知识,请参考:http://bbs.nanjimao.com/thread-855-1-1.html

(1)安装Keepalived相关包

wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz

tar -zxvf keepalived-1.2.13.tar.gz

cd keepalived-1.2.13

./configure --disable-fwmark --prefix=/usr/local/keepalived

make && make install

(2)编辑keepalived.conf配置文件

①进入keepalived.conf所在目录:cd /etc/keepalived

②首先清除掉keepalived原有配置:> keepalived.conf

③重新编辑keepalived配置文件:vi keepalived.conf

技术图片
global_defs { router_id LVS_DEVEL # 设置lvs的id,在一个网络内应该是唯一的} vrrp_instance VI_1 { state MASTER #指定Keepalived的角色,MASTER为主,BACKUP为备 interface eth1 #指定Keepalived的角色,MASTER为主,BACKUP为备 virtual_router_id 51 #虚拟路由编号,主备要一致 priority 100 #定义优先级,数字越大,优先级越高,主DR必须大于备用DR advert_int 1 #检查间隔,默认为1s authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.5.200 #定义虚拟IP(VIP)为192.168.2.33,可多设,每行一个 } } # 定义对外提供服务的LVS的VIP以及portvirtual_server 192.168.5.200 3306 { delay_loop 6 # 设置健康检查时间,单位是秒 lb_algo wlc # 设置负载调度的算法为wlc 基于权重的调度算法 lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式 nat_mask 255.255.255.0 #persistence_timeout 0 会话保持时间 protocol TCP real_server 192.168.5.122 3306 { # 指定real server1的IP地址 weight 3 # 配置节点权值,数字越大权重越高 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } real_server 192.168.5.123 3306{ # 指定real server2的IP地址 weight 3 # 配置节点权值,数字越大权重越高 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 3306 } } }
技术图片

注意:会话保持时间要注释掉,这样可以看出负载均衡的调度

(3)开启keepalived服务

service keepalived start
停止命令
service keepalived stop
查看状态
service keepalived status

检测:运行命令ipvsadm

技术图片

2.5 配置从负载服务器

从负载服务器与主负载服务器大致相同,只是在keepalived的配置文件中需要改以下两处:

(1)将state由MASTER改为BACKUP

(2)将priority由100改为99

技术图片

vrrp_instance VI_1 { state BACKUP # 这里改为BACKUP interface eth1 virtual_router_id 51 priority 99 # 这里改为99,master优先级是100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.5.200 } } 

技术图片

2.6 验证性测试

在客户端上登录mysql,客户端机器是120,121,122,123之外的机器

mysql -h192.168.5.200 -uroot –pbruce -P3306 –Dbruce

因为mysql是长连接,所以测试时需要开启多个命令窗口进行连接

发现请求被平均分配到A和B服务器

LVS+Keepalived实现mysql的负载均衡

标签:virt   瓶颈   转换   def   cti   算法   ip绑定   数据库服务器   class   

小编还为您整理了以下内容,可能对您也有帮助:

lvs+keepalived 做mysql 从库负载均衡 VIP telnet不通 求助

MHA主要负责MySQL的高可用,而LVS主要对多个MHA进行负载均衡,防止单个MHA节点压力过大以及发生单点故障。Keepalived主要负责防止LVS服务器宕机。这是一个高可用的集群。

mysql数据库怎么实现负载均衡技术,是lvs+mysql AB复制吗

mysql数据库负载均衡 一般多用于读负载,  lvs 负载均衡,keepalived 高可用性。

LVS软件负载均衡器

LVS(LinuxVirtual Server)是由章文嵩博士主导开发的一款开源软件,可以实现Linux平台下的基于网络层的负载均衡软件。典型的基本架构图如图所示:

LVS集群采用IP负载均衡技术和基于内容请求分发技术。

LVS集群采用基于IP负载均衡技术和基于内容请求分发技术。当客户端有请求时,首先将请求包传送到Load Balance,然后Load Balance从后面的Real Servers中按照一定的算法策略选取一台Real Server,比如Real Server1,然后把请求包发送给Real Server1进行处理。对所有用户而言,面向用户的服务器端IP地址,只有一台,称之为VirtualIP Address。

mysql数据库怎么实现负载均衡技术,是lvs+mysql AB复制吗

mysql数据库负载均衡 一般多用于读负载,  lvs 负载均衡,keepalived 高可用性。

LVS软件负载均衡器

LVS(LinuxVirtual Server)是由章文嵩博士主导开发的一款开源软件,可以实现Linux平台下的基于网络层的负载均衡软件。典型的基本架构图如图所示:

LVS集群采用IP负载均衡技术和基于内容请求分发技术。

LVS集群采用基于IP负载均衡技术和基于内容请求分发技术。当客户端有请求时,首先将请求包传送到Load Balance,然后Load Balance从后面的Real Servers中按照一定的算法策略选取一台Real Server,比如Real Server1,然后把请求包发送给Real Server1进行处理。对所有用户而言,面向用户的服务器端IP地址,只有一台,称之为VirtualIP Address。

LVS+keepalived配置

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RendancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。

注意

1.配置时不要把主从IP弄混淆。(我做的蠢事是,明明是配置两个机器,结果在xshell中把一个IP设置为两个登录名,结果就很尴尬,好似见鬼了)

2.做高可用时应注意几台机器必须有一台是MASTER,否则会出现虚拟IP获取不到的现象。

3.配置启动时,应先启动master,如果先启动backup,backup不会有虚拟IP,只有master获取到虚拟IP后vrrp的通讯才会开始,之后再关闭master,backup 就会获取到虚拟IP了。

负载均衡的配置主从配置是一样的,本次事例配置lvs的DR模式,DR模式是互联网使用最多的形式。

特点

配置脚本

配置时的注意事项

1.lsof无法检测配置是否成功,因为director不会开启响应端口。

2.director要直接能转发到(直连)real-server,不要经过路由器或其他服务器跳转。

负载均衡:F5,Haproxy,lvs, nginx

阅读本文前,需熟悉OSI七层参考模型。

常见的负载均衡设备,有F5,Haproxy,lvs, nginx等。

F5是商用硬件负载均衡,性能很好,但是价格昂贵,除了负载均衡,还有应用交换、会话交换、状态监控等众多功能。
F5一般做四层负载均衡,但也支持七层负载均衡。

Haproxy(以下简称ha)是软件负载均衡,开源,一般做七层负载均衡,但也支持四层负载均衡。

Linux Virtual Server(以下简称lvs)是软件负载均衡,开源,二层或四层负载均衡,已集成到linux内核,自身有完备的热备方案(keepalived+lvs),稳定性极强。

nginx也是软件负载均衡,开源,通过反向代理实现负载均衡,是七层负载均衡,性能不如上面的几个。

tips1
有些公司,测试环境用ha/lvs/nginx,生产环境用F5。

tips2
nginx做web服务器时,一般做静态资源服务器和php的web服务器,所以很多公司,会采用F5+nginx或者ha+nginx的架构

tips3
微服务中的ribbon属于客户端负载均衡,上面的几种都是服务端负载均衡

二层负载均衡
在数据链路层通过修改mac地址实现,如lvs的DR模式(直接路由模式)

三层负载均衡
在网络层通过DNAT协议修改目标地址实现

四层负载均衡
用ip+端口实现请求转发
备注:tcp报文里并没有ip,但是四层负载均衡可以用ip+端口,是因为server可以拿到ip

七层负载均衡
通过重新发起http请求实现,即client把请求发给lb,lb把请求代发给server,再把server的响应返回给client,因此七层负载均衡也经常被称为代理,七层负载均衡设备也被称为代理设备。

七层负载均衡常用于内网与*的通信,比如内网无法直接访问*,需要通过代理设备代发http请求,这种情况下,代理设备需要配置双网卡,以同时与内*络通信。

由于需要重发http请求,七层负载均衡性能较差,但是更智能和安全,因为应用层可以获取甚至修改请求的真实内容(即应用数据),比如cookie、url等,可以做一些智能的操作,比如根据cookie/url转发请求,也可以做一些安全操作,比如过滤特定报文、防止SYN Flood攻击等。

使用七层负载均衡时,服务的性能受限于代理设备的网卡带宽。

常见的负载均衡策略,有轮询、加权轮询、ip_hash、cookie、url_hash,根据服务器响应时间转发、根据最少连接转发等等。
备注:nginx可以安装第三方插件,使用第三方实现的策略

轮询:按服务器列表顺序转发请求,轮询是nginx默认的策略,本策略适合服务器配置相当、请求无状态(即不依赖session)的场景

加权轮询:如果不同服务器配置不同,可以为配置高的服务器增加权重

ip_hash:根据ip哈希结果转发,可以实现同一用户持续请求同一服务器(即会话保持),适合有状态(即依赖session)的场景,对png、jpg、js、css等静态资源的请求,不适合使用本策略

cookie:根据特定cookie转发请求,一般也是用于实现会话保持,比如为服务器A、B分别增加service-flag=a、service-flag=b的cookie,后续请求根据cookie转发
可以参考 haproxy实现会话保持

url_hash:根据url哈希结果转发,同一个接口始终请求同一台服务器,一般配合缓存使用,缓存接口返回结果

根据服务器响应时间转发:优先转发到响应时间较快的服务器

根据最少连接转发:优先转发到连接数较少的服务器

F5有一些特有的负载均衡策略:利用从应用程序和服务器收集到的各项性能指标,分析并转发

负载均衡有两个步骤:
1.根据什么算法选择真实服务端,即负载均衡策略,如轮询、加权轮询、ip_hash、cookie、url_hash等;
2.把请求转发到真实服务器,转发方式有二层到七层负载均衡

keepalived软件一开始是专为lvs设计的,后来加入了可以实现高可用的VRRP (Virtual Router Rendancy Protocol ,虚拟路由器冗余协议)功能,因此,keepalived还可以作为nginx、haproxy、mysql等服务的高可用解决方案。

以nginx为例,为了防止nginx本身由于宕机等原因导致网站不可用,一般会搭两套nginx反向代理,用keepalived提供一个VIP。

一般情况下,VIP只在nginx主节点上工作,如果nginx主节点不可用了,VIP会自动漂移到从节点,自动漂移的原理即VRRP协议。

VIP漂移到从节点后,如果主节点恢复正常了,VIP是否漂移回主节点,取决于当前模式是抢占模式还是非抢占模式。

下图是一张简单的架构图,解释如下:

以上观点纯属个人意见,如果错误,欢迎指出,有些地方写的很简单,是因为我也不懂~

负载均衡:F5,Haproxy,lvs, nginx

阅读本文前,需熟悉OSI七层参考模型。

常见的负载均衡设备,有F5,Haproxy,lvs, nginx等。

F5是商用硬件负载均衡,性能很好,但是价格昂贵,除了负载均衡,还有应用交换、会话交换、状态监控等众多功能。
F5一般做四层负载均衡,但也支持七层负载均衡。

Haproxy(以下简称ha)是软件负载均衡,开源,一般做七层负载均衡,但也支持四层负载均衡。

Linux Virtual Server(以下简称lvs)是软件负载均衡,开源,二层或四层负载均衡,已集成到linux内核,自身有完备的热备方案(keepalived+lvs),稳定性极强。

nginx也是软件负载均衡,开源,通过反向代理实现负载均衡,是七层负载均衡,性能不如上面的几个。

tips1
有些公司,测试环境用ha/lvs/nginx,生产环境用F5。

tips2
nginx做web服务器时,一般做静态资源服务器和php的web服务器,所以很多公司,会采用F5+nginx或者ha+nginx的架构

tips3
微服务中的ribbon属于客户端负载均衡,上面的几种都是服务端负载均衡

二层负载均衡
在数据链路层通过修改mac地址实现,如lvs的DR模式(直接路由模式)

三层负载均衡
在网络层通过DNAT协议修改目标地址实现

四层负载均衡
用ip+端口实现请求转发
备注:tcp报文里并没有ip,但是四层负载均衡可以用ip+端口,是因为server可以拿到ip

七层负载均衡
通过重新发起http请求实现,即client把请求发给lb,lb把请求代发给server,再把server的响应返回给client,因此七层负载均衡也经常被称为代理,七层负载均衡设备也被称为代理设备。

七层负载均衡常用于内网与*的通信,比如内网无法直接访问*,需要通过代理设备代发http请求,这种情况下,代理设备需要配置双网卡,以同时与内*络通信。

由于需要重发http请求,七层负载均衡性能较差,但是更智能和安全,因为应用层可以获取甚至修改请求的真实内容(即应用数据),比如cookie、url等,可以做一些智能的操作,比如根据cookie/url转发请求,也可以做一些安全操作,比如过滤特定报文、防止SYN Flood攻击等。

使用七层负载均衡时,服务的性能受限于代理设备的网卡带宽。

常见的负载均衡策略,有轮询、加权轮询、ip_hash、cookie、url_hash,根据服务器响应时间转发、根据最少连接转发等等。
备注:nginx可以安装第三方插件,使用第三方实现的策略

轮询:按服务器列表顺序转发请求,轮询是nginx默认的策略,本策略适合服务器配置相当、请求无状态(即不依赖session)的场景

加权轮询:如果不同服务器配置不同,可以为配置高的服务器增加权重

ip_hash:根据ip哈希结果转发,可以实现同一用户持续请求同一服务器(即会话保持),适合有状态(即依赖session)的场景,对png、jpg、js、css等静态资源的请求,不适合使用本策略

cookie:根据特定cookie转发请求,一般也是用于实现会话保持,比如为服务器A、B分别增加service-flag=a、service-flag=b的cookie,后续请求根据cookie转发
可以参考 haproxy实现会话保持

url_hash:根据url哈希结果转发,同一个接口始终请求同一台服务器,一般配合缓存使用,缓存接口返回结果

根据服务器响应时间转发:优先转发到响应时间较快的服务器

根据最少连接转发:优先转发到连接数较少的服务器

F5有一些特有的负载均衡策略:利用从应用程序和服务器收集到的各项性能指标,分析并转发

负载均衡有两个步骤:
1.根据什么算法选择真实服务端,即负载均衡策略,如轮询、加权轮询、ip_hash、cookie、url_hash等;
2.把请求转发到真实服务器,转发方式有二层到七层负载均衡

keepalived软件一开始是专为lvs设计的,后来加入了可以实现高可用的VRRP (Virtual Router Rendancy Protocol ,虚拟路由器冗余协议)功能,因此,keepalived还可以作为nginx、haproxy、mysql等服务的高可用解决方案。

以nginx为例,为了防止nginx本身由于宕机等原因导致网站不可用,一般会搭两套nginx反向代理,用keepalived提供一个VIP。

一般情况下,VIP只在nginx主节点上工作,如果nginx主节点不可用了,VIP会自动漂移到从节点,自动漂移的原理即VRRP协议。

VIP漂移到从节点后,如果主节点恢复正常了,VIP是否漂移回主节点,取决于当前模式是抢占模式还是非抢占模式。

下图是一张简单的架构图,解释如下:

以上观点纯属个人意见,如果错误,欢迎指出,有些地方写的很简单,是因为我也不懂~

LVS+Keepalived

LVS负载集群:

IPVS:工作在内核

ipvsadm:管理IPVS

keepalived和ipvsadm并行的,都可以直接管理内核ipvs。

keepalived和LVS亲密无间,keepalived就是为LVS诞生。

LVS技术小结:

1.真正实现调度的工具是IPVS,工作在linux内核层面。

2.LVS自带的IPVS管理工具是ipvsadm。

3.keepalived实现管理IPVS及负载均衡器的高可用。

4.Red hat工具Piranha WEB管理实现调度的工具IPVS。

LVS术语:

VIP:虚拟IP;

RIP:真是IP;

DIP:Director IP;

CIP:客户端主机IP;

LVS集群的四种模式:

NAT

DR ***

TUN

FULLNAT

ARP协议:

全称"Address Resolution Protocol":地址解析协议;IP地址转换成相应的物理地址(MAC地址);

ARP小结:

1.ARP全称

2.实现局域网把IP地址转换为MAC地址

3.MAC 48位主机的物理地址,局域网内唯一

4.ARP协议和DNS有点相似之处。不同点是:DNS是在域名和IP之间的解析,另外,ARP协议不需要配置服务

,而DNS要配置服务才行。

5.ARP协议是三层协议

LVS DR模式:

1.通过更改数据包的目标MAC地址实现数据包转发的。注意源IP地址仍是CIP,目的IP地址仍是VIP。

2.请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此,并发访问量大时使用效率很高(和NAT模式比)

3.因DR模式是通过MAC地址的改写机制实现的转发,所有节点和LVS要处于一个局域网

4.需要注意RS节点的VIP的绑定(lo:vip/32,lo1:vip/32)和ARP抑制问题

5.RS节点的默认网关不需要是调度器LB的DIP,而直接是IDC机房分配的上级路由器的IP(这是RS带有IP

地址的情况),理论讲:只要RS可以出网即可,不是必须要配置IP。

6.目的MAC地址的改写,调度器LB无法该变请求的报文的目的端口(和NAT的区别)

7.调度器LB支持几乎所有的UNIX,LINUX系统,不支持WINDOWS系统。真实服务器RS节点可以是WINDOWS系统。

8.DR模式效率高,配置麻烦,访问量不大的情况,可以用haproxy、nginx,日1000-2000w PV或1万以下

9.直接对外的访问业务,例如:web服务做RS节点,RS最好用公网IP地址。如果不直接对外的业务,例如:MySQL,

存储系统RS节点,最好用内部IP地址。

NAT模式:入站DNAT,出站SNAT,入站出站都经过LVS,可以修改端口

DR模式:修改数据包的目的MAC地址,入站经过LVS,出站不经过LVS,直接返回客户,不能改端口,适合局域网LAN。

TUN模式:不改变数据包内容,数据包外部封装一个IP头,入站经过LVS,出站不经过LVS,直接返回客户,不能改端口,适合局域网LAN/WAN。

LVS和节点之间通过隧道通信。

LVS调度算法:

固定算法: rr(轮询), wrr(权重轮询),dh(目标地址哈希),sh(源地址哈希)

动态算法:*wlc(加权最小连接),lc(最小连接),lblc,lblcr,SED,NQ

WEB

LB01(nginx+keepalived) 10.0.1.3

VIP:10.0.1.31

LB02(nginx+keepalived) 10.0.1.5

VIP:10.0.1.32

WEB1 10.0.1.6 LAMP RS1(真实服务器)

WEB2 10.0.1.9 LNMP RS2(真实服务器)

安装LVS

安装准备命令:lsmod|grep ip_vs(验证keepalived是否安装)

安装LVS:①yum install ipvsadm -y3、②命令:ipvsadm(有则安装成功)

配置IP

1.ping IP,起初选的IP是ping不通。以10.0.1.31为例(IP随意分配),添加这个IP

2.lb01:添加一个IP-->ip addr add 10.0.1.31/24 dev eth0 label eth0:1

LB01(LVS的配置过程)

第一步:

新安装,清除列表,重头再来

ipvsadm -C

第二步:

添加IP(虚拟服务)/V server

指定IP:

ipvsadm -A -t 10.0.1.31:80 -s rr

查看IP:

ipvsadm -LN

// TCP 10.0.1.31:80 rr(V server,但没有节点)

添加RS1节点:

ipvsadm -a -t 10.0.1.31:80 -r 10.0.1.6:80 -g

查看:

ipvsadm -Ln

// TCP 10.0.1.31:80 rr

// --> 10.0.1.6:80 Route 1 0 0 *(新增加了一个节点)

添加RS2节点:

ipvsadm -a -t 10.0.1.31:80 -r 10.0.1.9:80 -g

查看:

ipvsadm -Ln

// TCP 10.0.1.31:80 rr

// --> 10.0.1.6:80 Route 1 0 0

// --> 10.0.1.9:80 Route 1 0 0 *(新增加了一个节点)

##如果节点导错了,可以删除,重新导

ipvsadm -d -t 10.0.1.31:80 -r 10.0.1.9:80

ipvsadm -Ln

// TCP 10.0.1.31:80 rr

// --> 10.0.1.6:80 Route 1 0 0

&&可以增加会话保持

-p (会话保持时间)

ipvsadm -A -t 10.0.1.31:80 -s rr -p 300

&&设置超时参数

ipvsadm --set 30 5 60

第三步:

在负载均衡上做一个host解析:

vi /etc/hosts

10.0.1.6 www.etiantian.org bbs.etiantian.org( 以此为例,对其他的IP也要验证)

测试VIP,RIP1,RIP2能不能访问:

①ping www.etiantian.org

②curl www.etiantian.org

注意:对VIP测试,要特别注意,一般不要再负载均衡器上测试,要选择别的客户端(真正的客户端)来验证。

第四步

RS绑定VIP

ip addr add 10.0.1.31/32 dev lo label lo:1 *临时生效

route add -host 10.0.1.31 dev lo

第五步

对RS抑制ARP响应方法如下:

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

LVS缺点:只能手工配置,没有健康检查

健康检查功能:

如果其中一台服务器停止了,LVS没有健康检查功能,所以ipvsadm -Ln列表中还有这台服务器。

LVS裂脑问题???

LVS故障排查:

熟悉LVS的工作原理

1.调度器上LVS调度规则及IP的正确性

2.RS节点上VIP绑定和arp抑制的检查

生产处理思路:

1)对RS绑定的VIP做实时监控;

2)RS绑定的VIP做成配置文件

keepalived解决了几个问题:a.管理的问题;b.健康检查的问题;c.LVS的高可用

Keepalived配置

1.vi keepalived.conf

2.ip addr del 10.0.1.32/24 dev eth0

3.ipvsadm -C

MySQL-14mysql负载均衡

大家好,一起来搞一下mysql的负载均衡这个技术点。

1. haproxy介绍与配置

2. keeplived介绍与配置

3. mysql高可用搭建

1. 可靠性与稳定性都非常出色,可与硬件级设备媲美。

2. 支持连接拒绝,可以用于防止 DDoS 攻击

3. 支持长连接、短连接和日志功能,可根据需要灵活配置

4. 路由 HTTP 请求到后端服务器,基于 cookie 作会话绑定;同时支持通过获取指定的 url 来检测后 端服务器的状态

5. HAProxy 还拥有功能强大的 ACL 支持,可灵活配置路由功能,实现动静分离,在架构设计与实现上 带来很大方便

6. 可支持四层和七层负载均衡,几乎能为所有服务常见的提供负载均衡功能

7. 拥有功能强大的后端服务器的状态监控 web 页面,可以实时了解设备的运行状态 ,还可实现设备上 下线等简单操作。

8. 支持多种负载均衡调度算法,并且也支持 session 保持。

9. Haproxy 七层负载均衡模式下,负载均衡与客户端及后端的服务器会分别建立一次 TCP连接,而在 四层负载均衡模式下(DR),仅建立一次 TCP 连接;七层负载均衡对负载均衡设备的要求更高,处理能力 也低于四层负载均衡。

全局设定

global settings:主要用于定义 haproxy 进程管理安全及性能相关的参数。

代理设定

proxies 共分为4段:defaults,frontend,backend,listen

注意:此处只做配置文件介绍,不做为后期负载均衡配置

在192.168.199.175与192.168.199.172(负载均衡服务器)中安装与配置如下

haproxy状态检测脚本不执行问题,如果是使用的service keeplived start 或者是 systemctl 方式启动,脚本可能会不执行,可以使用 Keepalived -f /etc/keepalived/keepalived.conf方式启动Keepalived

显示全文