keepalived脑裂

keepalived脑裂及解决方法?

  • 一.keepalived的脑裂是如何产生的?
  • 二、HAProxy
    • 1.HAProxy概念
    • 2.HAProxy主要特性
    • 3.HAProxy负载均衡策略
  • 4.LVS nginx HAProxy的区别
  • 5.编译部署HAProxy

一.keepalived的脑裂是如何产生的?

脑裂:指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立的几点,这时我们两个节点开始争抢资源,结果会导致系统混乱,数据损坏。

在某一次故障切换后,原来的master并没有真正的宕机,VIP还在master上,这个时候BACKUP则已经抢占master地位,并也在本地配置了VIP
2.如何去解决脑裂的问题预防
解决预防:

1.网络层面:加一条链路

2.本地通过脚本解决 写一个while循环 每轮ping网关 累计连续是备的次数,当连续失败的次数到达一定的次数则运行systemctl stop keepalived服务

3.第三方监控软件方式解决:监控服务 监控网络流量

二、HAProxy

1.HAProxy概念

提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,是免费、快速并且可靠的一种解决方案。适用于并发大web站点,这些站点通常又需要会话保持或七层处理

2.HAProxy主要特性

可靠性和稳定性好,可以与硬件级的F5负载均衡设备相媲美

最高可以同时维护40000-50000个并发连接

支持多达8种负载均衡算法,同时也支持会话保持

支持虚拟机功能,从而实现web负载均衡更加灵活

支持连接拒绝、全透明代理等独特功能

拥有强大ACL支持、用于访问控制

支持keepalive功能,减少客户端与haproxy的多次三次握手导致的

支持TCP加速,零复制功能

支持响应池

支持RDP协议

日志分析器,可对日志进行分析

3.HAProxy负载均衡策略

roundrobin,表示简单的轮询

static-rr,表示根据权重

leastconn,表示最少连接者先处理

source,表示根据请求源IP

uri,表示根据请求的URI,做cdn需使用

url_param,表示根据请求的URL参数’balance url_param’ requires an URL parameter name

hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求

rdp-cookie(name),表示根据cookie(name)来锁定并哈希每一次TCP请求

cdn

CDN是内容分发网络(Content Delivery Network)的缩写。它是一种用于提供高效内容传递的网络架构。CDN通过在全球范围内部署分布式服务器节点,将内容缓存到离用户最近的服务器上,从而提供更快的内容传输,降低用户访问延迟。

传统的互联网架构中,当用户请求访问网站或应用程序时,通常会将请求发送到源服务器,然后源服务器将响应返回给用户。这种集中式的架构可能在网络拥塞、服务器负荷过重或网络距离远等情况下导致延迟和性能问题。

而CDN通过在全球各地分布服务器节点,这些节点位于不同的地理位置或网络运营商中,可以实现以下优势:

  1. 高速传输:CDN将内容缓存到离用户最近的服务器上,使得内容可以通过更短的网络路径传输到用户,从而提供更快的加载速度和响应时间。
  2. 负载均衡:CDN可以根据实际的网络流量和用户请求的位置将流量分散到不同的服务器节点上,降低源服务器的负载压力,提高整体的性能和稳定性。
  3. 内容优化:CDN可以对内容进行优化和压缩,以减少数据传输量,并采用缓存机制,使得相同内容可以被多个用户共享,减轻源服务器的压力。
  4. 提高可靠性:由于CDN采用分布式的架构,即使某个节点发生故障,仍然可以通过其他节点继续提供服务,提高了系统的可靠性和容错性。

CDN被广泛应用于网站、应用程序、流媒体服务和大规模软件分发等场景,以提供更好的用户体验和高效的内容传输。

4.LVS nginx HAProxy的区别

LVS基于Linux操作系统内核实现软负载均衡,而HAProxy和Nginx是基于第三方应用实现的软负载均衡

LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而HAProxy和Nginx都可以实现4层和七层技术,HAProxy可提供TCP和HTTP有用的负载均衡综合

解决方案:

LVS因为工作在ISO模型的第四层,其状态监测功能单一,而HAProxy在状态检测方面功能更强大,可支持端口、URL、脚本等多种状态检测方式

HAProxy功能更加强大,但整体性能低于4层模式的LVS负载均衡

Nginx主要用于Web服务器或缓存服务器。Nginx的upstream模块虽然也支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy好

nginx

支持正则

只支持基于端口的健康检查

不支持session直接保持、但能通过ip_hash来解决

对网络稳定性要求不高

反向代理能力强

LVS

只能基于四层端口转发

仅在四层做分发作用 抗负载能力强

应用范围广

haproxy

支持8中负载均衡策略

仅做负载均衡软件使用,在高并发情况下性能优于nginx

支持URL检测 支持session保持

F5 SLB

5.编译部署HAProxy

192.168.109.11

192.168.109.21

192.168.109.31

第一步改主机名

192.168.109.11

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1KLKpNwq-1688889012169)(C:\Users\33619\AppData\Roaming\Typora\typora-user-images\image-20230707160450514.png)]
192.168.109.21
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hUQmaMDf-1688889012170)(C:\Users\33619\AppData\Roaming\Typora\typora-user-images\image-20230707160508610.png)]
192.168.109.31
keepalived脑裂_第1张图片
关闭防火墙
keepalived脑裂_第2张图片
第二步:安装编译包

192.168.109.11

安装依赖环境
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jQh8uXrr-1688889012171)
解压haproxy包
在这里插入图片描述
编译
keepalived脑裂_第3张图片
创建目录
在这里插入图片描述

复制配置文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1AEHVvQX-1688889012172)(C:\Users\33619\AppData\Roaming\Typora\typora-user-images\image-20230707165457568.png)]
修改配置文件
keepalived脑裂_第4张图片
keepalived脑裂_第5张图片
keepalived脑裂_第6张图片
添加系统服务
keepalived脑裂_第7张图片
添加软连接
keepalived脑裂_第8张图片
192.168.109.21
keepalived脑裂_第9张图片

192.168.109.31
keepalived脑裂_第10张图片

你可能感兴趣的:(Haproxy)