keepalived脑裂

news2024/11/16 18:08:18

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
在这里插入图片描述
关闭防火墙
在这里插入图片描述
第二步:安装编译包

192.168.109.11

安装依赖环境
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jQh8uXrr-1688889012171)
解压haproxy包
在这里插入图片描述
编译
(C:\Users\33619\AppData\Roaming\Typora\typora-user-images\image-20230707164737463.png)]
创建目录
在这里插入图片描述

复制配置文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1AEHVvQX-1688889012172)(C:\Users\33619\AppData\Roaming\Typora\typora-user-images\image-20230707165457568.png)]
修改配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加系统服务
在这里插入图片描述
添加软连接
在这里插入图片描述
192.168.109.21
在这里插入图片描述

192.168.109.31
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/734777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch【优化、案例】(八)-全面详解(学习总结---从入门到深化)

目录 Elasticsearch集群_测试集群状态 Elasticsearch集群_故障应对&水平扩容 Elasticsearch优化_磁盘选择 Elasticsearch优化_分片策略 Elasticsearch优化_内存设置 Elasticsearch案例_需求说明 Elasticsearch案例_ES自动补全 Elasticsearch案例_创建索引 Elastic…

多元分类预测 | Matlab 鲸鱼算法(WOA)优化xgboost的分类预测模型,多特征输入模型,WOA-xgboost分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab 鲸鱼算法(WOA)优化xgboost的分类预测模型,多特征输入模型,WOA-xgboost分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程序可…

MySQL查询作业

一、单表查询练习 1、查询出部门编号为30的所有员工 2、所有销售员的姓名、编号和部门编号。 3、找出奖金高于工资的员工。 4、找出奖金高于工资60%的员工。 5、找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。 6、找出部门编号为10中…

【三】部署zabbix-proxy代理服务器和高可用,以及监控windows系统和java应用

zabbix代理服务器和高可用 1.部署zabbix代理服务器1.1 代理端zabbix-proxy配置1.2 客户端zabbix-agent配置1.3 zabbix-proxy总结 2. 部署Zabbix高可用集群2.1 主节点zabbix-server配置2.2 备节点zabbix-server配置2.3 客户端zabbix_agent配置2.4 Zabbix高可用集群总结 3.Zabbix…

JavaScript异步编程:(回调函数、Promise、async/await、Generator)

文章目录 前言1. 回调函数1.1. 回调函数的基本概念和使用方法1.2. 回调函数的优缺点和注意事项1.3. 回调地狱和如何避免 2. Promise2.1. Promise 的基本概念和使用方法2.2. Promise 的状态和状态转换2.3. Promise 的链式调用和错误处理2.4. Promise.all 和 Promise.race 的使用…

MySQL数据库中对表进行创建,插入数据并对数据进行选择

目录 1.根据此图进行建表并插入数据 2.对表进行以下操作 a:显示所有职工的基本信息 b:查询所有职工所属部门的部门号,不显示重复的部门号 c:求出所有职工的人数 d:列出最高工和最低工资 e:列出职工的平均工资和总工资 f:创建一个只有职工号、姓名和参加工作的…

123.HTML5+CSS3完结_使用Netlify收取表单

Netlify也可以做表单接受: 我们启动一下 修改下表单 ● 接着在我们的网站输入并提交表单 ● 之后会有一个提示,提示我们提交成功 然后就能在Netlify接受到用户的表单 ● 当然这个表单只能接受100个,但是作为实验也够用了 到此&a…

文字磨练课程:提高编辑和校对效率的方法

提高编辑和校对效率,可以使你更有效地完成写作任务,提升文章质量。以下是一些方法,可以帮助你在编辑和校对过程中提高效率。 1.设定目标和计划 在开始编辑和校对前,设定明确的目标和计划。这可以帮助你集中注意力,提…

【SQL应知应会】表分区(一)• MySQL版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 分区表 • MySQL版 一、分区表1.非分区表2.分区表2…

整齐有序!统一命名文件,高效管理数据轻松实现!

在数字化时代,我们每天都与大量文件打交道,文件名杂乱无章、难以辨识的情况是司空见惯的。这不仅浪费我们宝贵的时间,还可能导致信息混乱和数据丢失。但是,抛开这一切困扰吧!现在,我们向您介绍一个简单却强…

C++—string类

本期我们来学习C的string,本期内容相当的多,且有一定难度,需要大家静下心来看 目录 1.标准库中的string 1.1string类的介绍 1.2 string类的常用接口 构造函数、析构函数、赋值、拷贝构造 npos push_back append operator[ ] size …

什么是ASPICE认证

ASPICE: “AutomotiveSoftware ProcessImprovement and CapacityDetermination”,即汽车软件过程改进及能力评定。它是一个过程模型,由过程和能力度两个维度构成,用于评价汽车行业软件设计开发的能力水平。 ASPICE的6个级别&…

基于simulink进行场景变化检测(附源码)

一、前言 此示例演示如何及时分割视频。此示例中的算法可用于检测视频流中的重大变化,例如广告开始和结束的时间。场景变换在广告和营销中被广泛应用。通过改变场景,可以吸引消费者的注意力,传达产品或服务的特点和优势。例如,将…

包揽七项葵花奖 参编多项标准 萤石领跑智能家居+物联网云平台行业

7月9日,2023第七届“葵花奖”智能家居评选颁奖盛典在广交会展馆举行,萤石网络一举斩获7项重磅奖项。同时,萤石作为参编单位,受邀参与了《智能门锁测评标准》发布仪式及《智能开关测评标准》启动会,再次彰显了其在智能家…

【一些随笔】浅析 Linux和Windows:系统介绍、操作差异与使用技巧解析

一些随笔 文章内容1️⃣ 那些在Linux上顺理成章,换到Windows上就可能令人费解的事2️⃣ Linux系统介绍及使用技巧3️⃣ Windows系统介绍及使用技巧 文章内容 Linux和Windows系统的操作差异;Linux系统介绍、系统监控和优化技巧、Shell脚本编程技巧、一些…

掌握Python文件操作的绝招:打造数据之径,揭开文件操作的神秘面纱

文章目录 前言文件的基本操作打开文件操作关闭文件操作对文件进行操作1)只读文件操作read()readlines()readline()seek() 2)只写文件操作3)文件追加操作读写、追加读写操作1. r 模式打开文件2. w 模式打开文件3. a 模式打开文件 以二进制的形…

走向 Native 化:SpringDubbo AOT 技术示例与原理讲解

作者:刘军 Java 应用在云计算时代面临“冷启动”慢、内存占用高、预热时间长等问题,无法很好的适应 Serverless 等云上部署模式,GraalVM 通过静态编译、打包等技术在很大程度上解决了这些问题,同时针对 GraalVM 的一些使用限制&a…

用了国产接口管理神器 Apifox 之后,我果断从 Postman “脱坑”了

在当前行业发展背景下,绝大部分项目都是基于前后端分离的架构进行的,由前后端、测试、运维等不同的团队共同开发,那么团队之间能否很好的 协同合作 无疑直接决定着项目的最终效果。 但是在实际开发流程中,团队之间的协同是很低效…

网络编程5——TCP协议的五大效率机制:滑动窗口+流量控制+拥塞控制+延时应答+捎带应答

文章目录 前言一、TCP协议段与机制TCP协议的特点TCP报头结构TCP协议的机制与特性 二、TCP协议的 滑动窗口机制 三、TCP协议的 流量控制机制 四、TCP协议的 拥塞控制机制 五、TCP协议的 延时应答机制 六、TCP协议的 捎带应答机制 总结 前言 本人是一个普通程序猿!分享一点自己的…

c语言进阶-printf的用法拓展

Printf函数打印方法拓展: 字符串赋值给指针,相当于把h的地址赋值给p了。 printf函数直接放字符串也是把首地址给printf,然后printf从首地址打印到\0。 打印时可以直接传p地址