keepalive脑裂
keepalive脑裂
调度器的高可用
vip地址主备之间的切换,主在工作时,p地址只在主上,主停止工作,ip飘移到备服务器。
在主备的优先级不变的情况下,主恢复工作,vip会飘回到主服务器。
1、配优先级
2、配置vip和真实服务器
3、主备的id要一致。
4、主备的id要区分。
kedpalive是专门为lvs打造的,但是不是为Ivs专门服务的
keepalive也可以使用nginx,haproxy
192.168.39.30 客户端 test1
192.168.39.40 nginx1 keepalive
192.168.39.50 nginx2 keepalive
监控的脚本,来监控nginx1的状态
如果nginx1挂了,nginx1的keepalive
也要停止,实现vip的飘移。
nginx1
vim /usr/local/nginx/html/index.html
this is nginx1
cd /opt
vim check_nginx.sh
#!/bin/bash
/usr/bin/curl -I http://localhost &> /dev/null
if [ $? -ne 0 ]
thensystemctl stop keepalived
fivim /etc/keepalived/keepalive.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_01vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}
vrrp_script check_nginx {script "/opt/check_nginx.sh"#调用脚本内容,检测nginx状态interval 5#检测的间隔时间是5秒
}
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 120advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.39.100}track_script {check_nginx}
}
systemctl restart nginx
systemctl restart keepalivenginx2
vim /usr/local/nginx/html/index.html
this is nginx2scp root@192.168.39.40:/etc/keepalived/keepalive.con /etc/keepalivedvim /etc/keepalived/keepalive.conf
修改level等级,和优先级100
systemctl restart nginx
systemctl restart keepalive客户机中
curl 192.168.39.100在nginx1中
ip addr
#查看是否有vip地址192.168.39.100
关闭nginx和keepalive,到nginx2中ip addr查看vip地址是否飘过来
在nginx2中
关闭nginx和keepalive,到nginx1中ip addr查看vip地址是否飘过来
脑裂是什么
HA 高可用架构中的一个特殊现象,只要使用vip地址代理的冗余模式的高可用,都有可能出现脑裂的问题
主和备同时都有vip地址
主和备无法确定各自的身份,同时出现了vip地址,两边都起来了,但是两边都无法使用
原因
1、keepalive的配置文件问题
2、心跳线(网线),断了,老化
3、网卡出问题(硬件),ip地址配置冲突
4、防火墙的策略,iptables的策略,屏蔽了组播的地址广播。屏蔽了vrrp协议的报文
5、两台服务器的时间不同步也可能导致
6、其他的服务配置对心跳线的服务进行干扰
怎么解决
1、查看配置文件中主备名称是否更改,level等级是否更改,优先级是否更改,网卡是否一致
2、更换心跳线,定期检查心跳线
3、更换网卡,查看IP地址是否重复(ifconfig)
4、关闭防火墙,iptables表中,将屏蔽了报文进出的策略关闭,
5、查看服务器的时间是否一致,将两台服务器的时间同步
6、给服务做隔离,配置多个心跳线路或使用独立的网络接口,以减少单一链路问题对整体健康检测的影响。为不同的服务分配不同的资源,以防止某个服务占用过多资源影响心跳检测。使用可靠的集群管理工具
nginx lvs lvs+keepalive keepalive单独配置
web集群
Haproxy负载均衡:
nginx 四层转发,七层代理
Ivs 四层转发 内核转发 用户态
Haproxy 四层转发,七层转发
haproxy的作用和使用场景
1、场景 用于高并发的web,可以支持一万个以上的并发请求,高性能的tcp和http的负载均衡器
工作原理:
提供一个代理地址,访问集群
2、作用:
1、进行四层和七层转发
2、支持https
3、haproxy本身不自带缓存功能,请求当中添加cookie使用缓存
4、支持主备切换(keepalive)
3、特点
可靠性高,稳定性好
可以同时维护40000-50000个并发,单位时间内可以处理的最大请求数20000个(3秒钟)
支持负载均衡算法,虽然不带缓存,但是可以支持会话保持
rr
wrr
lestconn
haproxy负载均衡(高可用)
test1 192.168.39.30
nginx1 192.168.39.40
nginx2 192.168.39.50
关闭所有的防火墙nginx1和nginx2
先配置index.html网页test1
安装haproxy的环境
yum install -y pcre-devel bzip2-devel gcc gcc-c++ make
cd /opt
#将haproxy安装包拖进来
tar -xf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
uname -r
#查看内核
make TARGET=linux2628 ARCH=x86_64
#target使用的版本要大于linux.2.60以上的版本
make install
mkdir /etc/haproxy
cd examples/
cp haproxy.cfg /etc/haproxy
cd /etc/haproxy/
vim haproxy.cfg
cd /opt/haproxy-1.5.19/examples/
cp haproxy.init /etc/init.d/haproxy
cd /etc/init.d/
chmod 777 /etc/init.d haproxy
chkconfig --add /etc/init.d/haproxy
cd /usr/local/sbin
ln -s /usr/local/sbin/haproxy /usr/sbin/
systemctl restart haproxy
客户机上 curl 192.168.39.30
vim haproxy.cfg
# this config needs haproxy-1.1.28 or haproxy-1.2.1globallog /dev/log local0 infolog /dev/log local1 notice#log loghost local0 infomaxconn 4096
# 最大连接数,推荐使用1024#chroot /usr/share/haproxyuid 99gid 99daemonnbproc 6#相当于haproxy的并发的线程数,设置的数量最好是CPU的两倍或保持一致#debug#quietdefaults
#默认参数配置,连接配置,监听配置以及代理配置log globalmode httpoption httplogoption dontlognullretries 3#检查节点服务器三次,连续三次失败,就认为节点服务器不可用redispatch#服务器负载很高时,自动结束当前结束当前队列处理比较久的连接maxconn 2000#最大连接数,这个数值可以和global中的maxconn保持一致也可以比他小,但是不能超过他
# contimeout 5000
# clitimeout 50000
# srvtimeout 50000timeout http-request 10s#http请求的默认超时时间timeout queue 1m #在队列当中请求的超时时间timeout connect 10s#连接超时时间timeout client 1m#客户端连接超时时间timeout server 1m#服务端的超时时间timeout http-keep-alive 10s#默认长连接的超时时间timeout check 10s#检查后端服务器的超时时间#转发请求的设置,既可以是四层也可以是七层
#七层配置listen xy102 0.0.0.0:80option httpchk GET /index.html#设置转发请求的内容balance static-rr
#默认轮询算法server rs01 192.168.39.40 check inter 2000 fall 3 weight 2server rs02 192.168.39.50 check inter 2000 fall 3 weight 3
#server指定真是服务器
#rs01 自定义后台服务器的名称
#check intern 2000 启动对后端服务器进行检查,检查的间隔2000毫秒
#fall 3 连续三次检测不到就是失败#四层转发:
frontend test
bind *:80
mode tcp
default_backend testbackand test
mode tcp
balance roundrobin
server sever1 192.168.39.40:80 check inter 2000 fall 3 weight 2
server sever2 192.168.39.50:80 check inter 2000 fall 3 weight 2
相关文章:
keepalive脑裂
keepalive脑裂 调度器的高可用 vip地址主备之间的切换,主在工作时,p地址只在主上,主停止工作,ip飘移到备服务器。 在主备的优先级不变的情况下,主恢复工作,vip会飘回到主服务器。 1、配优先级 2、配置…...
STM32Cubemx配置生成 Keil AC6支持代码
文章目录 一、前言二、AC 6配置2.1 ARM ComPiler 选择AC62.2 AC6 UTF-8的编译命令会报错 三、STM32Cubemx 配置3.1 找到stm32cubemx的模板位置3.2 替换文件内核文件3.3 修改 cmsis_os.c文件3.4 修改本地 四、编译对比 一、前言 使用keil ARM compiler V5的时候,编译…...
Perl基础入门指南:从零开始掌握Perl编程
Perl是一种功能强大且灵活的编程语言,广泛应用于系统管理、Web开发、网络编程和文本处理等领域。如果你是编程新手或者想学习一种新的编程语言,Perl是一个不错的选择。本文将带你了解Perl的基础知识,并通过简单的示例代码帮助你快速入门。 什…...
Mybatis SQL注解使用场景
MyBatis 提供了几种常用的注解,主要用于简化 XML 映射文件的编写,使得 SQL 查询和操作可以直接在 Java 接口中定义。下面列出了主要的注解以及它们在被调用时的写法示例: 1. Select Select 注解用于执行查询操作,并将查询结果映…...
Dataset for Stable Diffusion
1.Dataset for Stable Diffusion 笔记来源: 1.Flickr8k数据集处理 2.处理Flickr8k数据集 3.Github:pytorch-stable-diffusion 4.Flickr 8k Dataset 5.dataset_flickr8k.json 1.1 Dataset 采用Flicker8k数据集,该数据集有两个文件ÿ…...
近期matlab学习笔记,学习是一个记录,反复的过程
近期matlab学习笔记,学习是一个记录,反复的过程 matlab的mlx文件在运行的时候,不需要在文件夹路径下,也能运行,但是需要调用子函数时,就需要在文件所在路径下运行 那就先运行子函数,把路径换过来…...
Elasticsearch7.5.2 常用rest api与elasticsearch库
目录 一、rest api 1. 新建索引 2. 删除索引 3. 插入单条数据 4. 更新单条数据 5. 删除单条数据 6. 查询数据 二、python elasticsearch库 1. 新建索引 一、rest api 1. 新建索引 请求方式:PUT 请求URL:http://ip/(your_index_nam…...
Autosar Dcm配置-0x28服务ComControl-基于ETAS软件
文章目录 前言DcmDcmDsdDcmDspBswMBswMModeRequestPortBswMModeConditionBswMLogicalExpressionBswMActionBswMActionListBswMRule总结前言 0x28服务主要用来控制非诊断报文的通讯,一般在刷写预编程过程中,用来禁止APP的通信报文,可以减少总线负载率,提高刷写成功率。本文…...
平安养老险厦门分公司:提升金融服务,发挥金融力量
为向社会公众普及金融保险知识,传递消费者权益保护理念,平安养老保险股份有限公司厦门分公司(以下简称“分公司”)积极开展“78保险公众宣传日”系列教育宣传活动。分公司紧扣“保险,让每一步前行更有底气”主题&#…...
【开源合规】开源许可证风险场景详细解读
文章目录 前言关于BlackDuck许可证风险对比图弱互惠型许可证举个例子具体示例LGPL系列LGPL-2.0-onlyLGPL-2.0-or-laterLGPL-2.1-onlyLGPL-2.1-or-laterLGPL-3.0-onlyLGPL-3.0-or-laterMPL系列MPL-1.0MPL-1.1MPL-2.0EPL系列EPL-1.0EPL-2.0互惠型许可证GPL系列GPL-1.0GPL-2.0GPL-…...
Redis持久化RDB,AOF
目 录 CONFIG动态修改配置 慢查询 持久化 在上一篇主要对redis的了解入门,安装,以及基础配置,多实例的实现:redis的安装看我上一篇: Redis安装部署与使用,多实例 redis是挡在MySQL前面的,运行在内存…...
【持续集成_03课_Linux部署Sonar+Gogs+Jenkins】
一、通过虚拟机搭建Linux环境-CnetOS 1、安装virtualbox,和Vmware是一样的,只是box更轻量级 1)需要注意内存选择,4G 2、启动完成后,需要获取服务器IP地址 命令 ip add 服务器IP地址 通过本地的工具,进…...
mvcc 速读
MVCC(Multi-Version Concurrency Control,多版本并发控制)是MySQL中一种用于实现数据库并发控制的方法,尤其在InnoDB存储引擎中得到了广泛应用。它的主要作用是提高数据库在高并发场景下的性能,并确保数据的一致性。 …...
美容仪维修过程记录
近期维修的家用射频美容仪,发一些维修过程的拆机图片...
STM32入门开发操作记录(一)——新建工程
目录 一、课程准备1. 课程资料2. 配件清单3. 根目录 二、环境搭建三、新建工程1. 载入器件支持包2. 添加模块3. ST配置4. 外观设置5. 主函数文件 一、课程准备 1. 课程资料 本记录操作流程参考自b站视频BV1th411z7snSTM32入门教程-2023版 细致讲解 中文字幕,课程资…...
QT实现自定义带有提示信息的透明环形进度条
1. 概述 做界面开发的童鞋可能都会遇到这样的需求,就是有一些界面点击了之后比较耗时的操作,需要界面给出一个环形进度条的进度反馈信息. 如何来实现这样的需求呢,话不多说,上效果 透明进度条 2. 代码实现 waitfeedbackprogressba…...
金币程序题
昨天,小孩问了我一个python编程竞赛题,我看了一下题目,是一个数列编程的问题,我在想,小学五年级的学生能搞得懂吗?反正我家小孩是没有搞懂,不知道别人家的小孩能不能搞明白。所以我花了一点时间…...
《Windows API每日一练》9.13资源-鼠标位图和字符串
鼠标指针位图(Mouse Cursor Bitmap)是用于表示鼠标指针外观的图像。在 Windows 窗口编程中,可以使用自定义的鼠标指针位图来改变鼠标的外观,并提供更加个性化的用户体验。 ■以下是一些与鼠标指针位图相关的要点: ●…...
【保姆级教程】CenterNet的目标检测、3D检测、关键点检测使用教程
一、代码下载 仓库地址:https://github.com/xingyizhou/CenterNet?tab=readme-ov-file 二、目标检测 2.1 下载预训练权重 下载预训练权重ctdet_coco_dla_2x.pth放到models文件夹下 下载链接:https://drive.google.com/file/d/18Q3fzzAsha_3Qid6mn4jcIFPeOGUaj1d/edit …...
thinkphp:数据库复合查询-OR的使用
完整代码 $data[info] db::table(po_headers_all)->alias(ph) //设置wip_jobs_all的别名->join([vendors > ve], ph.vendor_codeve.vendor_code)->field(ph.po_num,ph.status,ph.vendor_code,ve.vendor_name,ph.po_all_amount,ph.note,ph.order_date,ph.need_dat…...
5步解决Windows Defender被移除后的系统防护重建难题
5步解决Windows Defender被移除后的系统防护重建难题 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/wi/windows-defe…...
人脸识别OOD模型在医疗领域的应用探索
人脸识别OOD模型在医疗领域的应用探索 1. 引言 在医院里,每天都有成千上万的患者需要身份确认、用药核对和病情监测。传统的医疗身份验证方式如手环、身份证件等存在被冒用、丢失或信息错误的风险。而医护人员在繁忙的工作中,也可能因为疲劳或疏忽而错…...
告别Armoury Crate臃肿困扰:GHelper革新性华硕笔记本硬件控制方案带来性能突破
告别Armoury Crate臃肿困扰:GHelper革新性华硕笔记本硬件控制方案带来性能突破 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and…...
OptiScaler完全指南:如何为你的游戏解锁跨厂商上采样技术
OptiScaler完全指南:如何为你的游戏解锁跨厂商上采样技术 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler 还在为游戏中…...
ARM架构Kylin V10上Kettle部署全攻略:从驱动配置到无界面运行
ARM架构Kylin V10上Kettle部署全攻略:从驱动配置到无界面运行 在国产化替代浪潮中,ARM架构服务器搭配麒麟操作系统已成为金融、政务等关键领域的基础设施标配。然而,当传统ETL工具Kettle遇上这套"全国产"环境,从驱动兼容…...
Thumb-2指令集在Cortex-M3上的5个高效编程技巧(附真实项目代码)
Thumb-2指令集在Cortex-M3上的5个高效编程技巧(附真实项目代码) 在嵌入式开发领域,Cortex-M3处理器凭借其出色的性能功耗比占据着重要地位。而Thumb-2指令集作为其核心特性之一,通过巧妙混合16位和32位指令,为开发者提…...
Phi-3-Mini-128K实操手册:模型加载耗时优化技巧——分层加载与缓存机制应用
Phi-3-Mini-128K实操手册:模型加载耗时优化技巧——分层加载与缓存机制应用 1. 项目概述 Phi-3-Mini-128K是基于微软Phi-3-mini-128k-instruct模型开发的轻量化对话工具,专为本地部署和高效推理场景设计。该工具通过多项技术创新,显著提升了…...
告别转换限制:实测可免费批量处理Geojson、Shapefile与KML的在线工具指南
1. 为什么你需要这个免费批量转换工具? 作为一个经常处理地理信息数据的老手,我太懂你们遇到的痛点了。上周帮学弟改毕业论文,他用的那个知名在线转换工具,刚传了第4个文件就弹出"本月免费额度已用完"——这哪够用啊&am…...
硅基神经植入体耐久性研究新突破
神经植入体包含构建在硅材料上的集成电路(IC),即通常所说的芯片。这些植入体需要做到小巧且柔韧,以模拟人体内部的环境。然而,人体内的环境具有腐蚀性,这引发了人们对可植入硅IC耐久性的担忧。一支研究团队…...
开源工具KeyboardChatterBlocker:机械键盘连击问题的智能解决方案
开源工具KeyboardChatterBlocker:机械键盘连击问题的智能解决方案 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 机械键盘以…...
