使用keepalived时虚拟IP漂移注意事项

news2025/1/20 3:50:21

什么是Keepalived服务

keepalived是一个开源的软件项目,用于实现高可用性(HA)的网络服务器负载均衡和故障转移。它允许将多台服务器组合在一起,形成一个虚拟服务器集群,实现负载均衡和故障转移。

keepalived的核心功能包括:

  1. 健康检查:keepalived会定期检测服务器的可用性,例如通过发送心跳请求或ping请求来检测服务器是否存活。
  2. 虚拟路由决策协议(VRRP):keepalived使用VRRP协议来决定哪台服务器担任虚拟IP地址的主服务器,其他服务器则作为备份服务器。当主服务器出现故障时,备份服务器会接管主服务器的工作。
  3. 负载均衡:keepalived可以将请求分发到多个服务器上,以实现负载均衡。它支持使用Round Robin、Least Connection等负载均衡算法。
  4. 故障转移:当主服务器出现故障时,keepalived可以自动将虚拟IP地址转移到备份服务器,确保服务的连续性。

通过使用keepalived,可以提高服务器的可用性和可靠性,确保系统对外提供服务时的高可用性。它常用于Web服务器、数据库服务器等应用场景。

什么是虚拟ip切换

Keepalive虚拟IP切换技术是一种网络高可用性技术,它可以确保在一组服务器中的某一台服务器出现故障时,能够迅速切换到另一台健康的服务器上,以确保服务的连续性。

在Keepalive虚拟IP切换技术中,一组服务器共享一个虚拟IP地址。当其中一台服务器发生故障时,其他服务器会通过一定的机制检测到该故障,并将虚拟IP地址迅速切换到另一台健康的服务器上,使其接替故障服务器的工作,继续提供服务。

具体实现Keepalive虚拟IP切换技术的方式有多种,其中一种典型的实现方式是使用心跳检测机制。在这种方式下,每个服务器都会周期性地向其他服务器发送心跳包,用于验证其可用性。如果有一台服务器长时间未接收到其他服务器的心跳包,则会判断该服务器故障,并触发虚拟IP地址的切换操作。

虚拟IP地址的切换可以通过多种技术实现,常见的方式包括ARP(Address Resolution Protocol)欺骗和VRRP(Virtual Router Redundancy Protocol)协议。在ARP欺骗方式下,一台服务器会发送虚拟IP的ARP响应包,欺骗其他服务器将流量发送到自己;在VRRP协议方式下,多台服务器共同组成一个虚拟路由器,通过选举机制确定主服务器,并将虚拟IP路由到主服务器上。

总之,Keepalive虚拟IP切换技术是一种提高网络服务可用性的技术,通过迅速切换虚拟IP地址到健康服务器上,确保在服务器故障时能够保持服务的连续性。

虚拟IP切换时可能存在的问题

当我们有一些已经建立好,并且正在通信的socket,即socket连接状态为ESTABLISHED时此时出现了keepalive触发的虚拟ip切换。会产生什么后果呢?

A、B、C三个节点,本来虚拟ip在A节点,B节点与A节点虚拟ip建立了ESTABLISHED的socket。此时虚拟ip从A切换到了C,这时,B本来要发送给A的消息,全部发送给了C,但是C又没有实际创建出能接收消息的socket,那消息将被C全部丢弃。这时候,我们就会发现,B节点出现了一个无法关闭也没有任何数据传输的socket通道,它会一直占用着资源。假如这种连接特别多,那将占用B节点大量的资源,严重影响B节点的稳定性

解决思路

通常要解决这个问题,有两种思路。其一是切换前对已经建立的socket连接做处理;其二是切换后对原有socket连接做处理。

方案操作备注
切换前处理A节点还没有释放虚拟IP前,将所有已建立的连接全部关闭。因为通常虚拟IP切换是一个不可预期的结果,所以通常来说这种方式可行性不高。但主动触发的虚拟IP切换可以采用此方式
切换后处理C节点接手虚拟IP后,将所有接受到发送到虚拟IP的网络报文做关闭处理(返回fin消息)或重连处理(返回rst消息)此方法相对于上一个方法通用性更高,只是需要对socket和TCP/IP协议比较了解,可以自己实现TCP/IP协议中的fin或rst消息

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

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

相关文章

【力扣100】46.全排列

添加链接描述 class Solution:def permute(self, nums: List[int]) -> List[List[int]]:# 思路是使用回溯if not nums:return []def dfs(path,depth,visited,res):# 出递归的条件是当当前的深度已经和nums的长度一样了,把path加入数组,然后出递归if …

echarts 二分图布局_力向导图_关系图

Echarts 常用各类图表模板配置 注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项; 以下代码都可以复制到 Echarts 官网,直接预览; 图标模板目录 Echarts 常用各类图表模板配置一、力向导图(二分图布局…

摩尔线程S80对于软件的支持

摩尔线程对软件的支持 时间:2024年1月1日 显卡型号:MTT S80 主板型号:七彩虹 igame z590 火神 V20 CPU: intel core i5 10400f 内存: 海盗船3600 16*2 存储: 致态1Tb nvme 显卡的驱动是最新的。 游戏 S…

从 MySQL 的事务 到 锁机制 再到 MVCC

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、事务 1.1 含义 1.2 ACID 二、锁机制 2.1 锁分类 2.2 隔离级别 三、MVCC 3.1 介绍 3.2 隔离级别 3.3 原理 四、总结 前…

关于Python里xlwings库对Excel表格的操作(二十五)

这篇小笔记主要记录如何【如何使用xlwings库的“Chart”类创建一个新图表】。 前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 (1)如何安装导入xlwings库; (2…

LeetCode刷题--- 不同路径 III

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述递…

二叉树详解(深度优先遍历、前序,中序,后序、广度优先遍历、二叉树所有节点的个数、叶节点的个数)

目录 一、树概念及结构(了解) 1.1树的概念 1.2树的表示 二、二叉树概念及结构 2.1概念 2.2现实中的二叉树: 2.3数据结构中的二叉树: 2.4特殊的二叉树: 2.5 二叉树的存储结构 2.51 顺序存储: 2.5.2 链式存储&…

Apache Flink连载(二十三):Flink HA - Flink基于Yarn HA

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. Yarn HA配置 ​​​​…

婴幼儿家庭护理百科知识,宝宝健康成长育儿实用课程

一、教程描述 本套教程由具有丰富育儿经验的多名专家精心打造而成,也是专门提供给准爸妈们学习的实用课程,可以解决宝宝的日常护理、日常喂养、饮食调理、疾病防治、意外护理等多方面问题。课程不仅可以丰富你的育儿知识,而且能够让你把这些…

vue写了这么久了你对slot的理解是什么?slot使用场景有哪些?

一、slot是什么 在HTML中 slot 元素 &#xff0c;作为 Web Components 技术套件的一部分&#xff0c;是Web组件内的一个占位符 该占位符可以在后期使用自己的标记语言填充 举个栗子 <template id"element-details-template"><slot name"element-na…

docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)

Docker 应用部署 一、部署MySQL 搜索mysql镜像 docker search mysql拉取mysql镜像 docker pull mysql:5.6创建容器&#xff0c;设置端口映射、目录映射 # 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysqldocker run -id \ -p 3307:3306 \ --na…

Plantuml之YAML效果图语法介绍(二十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

3D视觉-3D测量技术对比

从前面四种主流的 3D 测量技术来看&#xff0c;其优点和缺点都很明显&#xff0c;没有单独一种技术可以适用于所有的三维测量场景&#xff0c;从实际应用来看&#xff0c;双目与结构光在人脸识别&#xff0c;拆码垛定位&#xff0c;静态尺寸测量等应用上最为广泛。激光三角法因…

swing快速入门(三十四)输入对话框

&#x1f33c;注释很详细&#xff0c;直接上代码 &#x1f337;新增内容 &#x1f940;字符串输入型 输入对话框用法 &#x1f940;下拉选项输入型输入对话框用法 &#x1fab4;完整代码&#xff1a; package swing31_40;import javax.swing.*; import java.awt.*; import ja…

介绍一款PDF在线工具

PDF是我们日常工作中的一种常见格式&#xff0c;其处理也是我们工作的重要基础性环节&#xff0c;一款可靠的处理工具显得十分重要。 完全免费、易于使用、丰富的PDF处理工具&#xff0c;包括&#xff1a;合并、拆分、压缩、转换、旋转和解锁PDF文件&#xff0c;以及给PDF文件…

网络通信-入门1

网口框架 100M 2. 物理层解读 2.1 同步的方法&#xff1a;编码 为了让接收方在没有外部时钟参考的情况也能确定每一位的起始、结束和中间位置&#xff0c;在传输信号时不直接采用二进制编码。在 10BASE-T 的传输方式中采用曼彻斯特编码&#xff0c;在 100BASE-T 中则采用 4B/…

数字IC设计流程

目录 一、引例——RFID芯片 二、数字IC设计流程的发展史 第一阶段&#xff1a;人工设计 第二阶段&#xff1a;人工为主、计算机为辅 第三阶段&#xff1a;人工与计算机平分秋色 第四阶段&#xff1a;计算机为主、人工辅助 三、目前主流的数字IC设计流程 1、ASIC设计流程…

使用docker轻量化部署snmp agent(SNMPv2访问)

文章目录 服务器环境说明单机部署&#xff08;非挂载conf文件版&#xff09;debian:buster-slim容器简介实现步骤创建Dockerfile创建SNMP配置文件 (snmpd.conf)构建Docker镜像运行Docker容器 注意补充复制容器文件到本地容器、镜像操作 单机部署&#xff08;挂载conf文件版&…

Golang不可不知的7个并发概念

并发性支持是Golang最重要的原生特性之一&#xff0c;本文介绍了Golang中和并发性相关的7个概念。原文: Golang: 7 must-know concurrency related concepts 并发是Go编程语言的基本特性&#xff0c;意味着程序可以同时执行多个任务。Golang的并发独特而强大&#xff0c;其内置…

word中MathType公式编号

直接上效果图&#xff1a; 步骤如下&#xff1a; 安装MathTypeword中安装MathType选项卡。设置MathType选项卡添加分隔符插入公式&#xff0c;自动生成右编码 接下来介绍每一步。 文章目录 1. 安装MathType2. Word中安装MathType选项卡3. 配置MathType选项4. 添加分隔符5. 插…