LVS -- 持久链接(Persistent Connection)实现会话粘滞

  • 持久链接 (Persistent Connection):LVS 的一种特性,用于在一段时间内将来自同一源 IP 的所有请求绑定到同一台后端 RS,以维持会话。

  • 会话粘滞 (Session Sticky):也叫会话保持,指将同一用户的多次请求路由到同一台服务器,以维护用户的会话状态。

一.概述

1.1 原理

LVS 持久链接通过在 Director 上维护一个内存中的连接表来实现会话粘滞。

· 记录调度信息:当一个新的客户端(源 IP)首次访问 VIP 时,LVS 根据调度算法(如 rr)将其分配到一台 RS,并记录下这个映射关系。

· 超时重定向:在指定的超时时间(默认 360 秒)内,该客户端的所有后续请求,LVS 都会查找连接表,强制将其再次调度到同一台 RS 上,确保会话不中断。超时后,映射关系失效,新的请求会重新进行调度。

1.2 目的

在 DR 模式下,确保来自同一客户端的一系列相关请求在一段时间内被持续路由到同一台后端服务器,从而维持会话状态,提升用户体验和业务逻辑的完整性。

1.3 适用场景

电商网站的购物车、用户登录状态等需要服务器端存储会话信息的场景。

表单提交、文件上传等需要连续交互的操作,防止因切换 RS 导致数据丢失。

二. 环境设定

2.1 环境流程图

2.2 实验环境

2.3 环境配置

完整环境设定方法已整理并发布到CSDN以下链接中,若需要可跳转查看

https://blog.csdn.net/2401_84184229/article/details/157652660

三. 实现方法

3.1 在rs主机中同时开始http和https两种协议

在RS1中

复制代码
[root@RS1 ~]# dnf install mod_ssl -y
[root@RS1 ~]# systemctl restart httpd

在RS2中

复制代码
[root@RS2 ~]# dnf install mod_ssl -y
[root@RS2 ~]# systemctl restart httpd

3.2 设定ipvs调度策略

复制代码
[root@vsnode ~]# ipvsadm -A -f 6666 -s rr -p 1
#使用 -A 选项重新创建虚拟服务,并通过 -p 1 选项指定持久化超时时间为 1 秒
[root@vsnode ~]# ipvsadm -a -f 6666 -r 192.168.221.10 -g
#将后端真实服务器重新添加到该虚拟服务中。
[root@vsnode ~]# ipvsadm -a -f 6666 -r 192.168.221.20 -g
[root@vsnode ~]# ipvsadm -Ln

3.3 测试

复制代码
[root@client ~]# curl 192.168.221.200
RS2 - 192.168.221.20
[root@client ~]# curl 192.168.221.200
RS2 - 192.168.221.20

观察:

新开一个vsnode会话:

复制代码
[root@vsnode ~]# watch -n 1 ipvsadm -Lnc

四. 结论

LVS 持久链接通过在 Director 上维护一个基于源 IP 的连接映射表,在指定的超时时间内实现了会话粘滞。相较于简单的源地址哈希(sh)调度算法,它更加灵活,通过超时机制避免了客户端与 RS 的长期绑定,从而防止了负载均衡器的负载失衡。在 DR 模式下,持久链接是处理有状态应用的关键技术,它在保证高性能转发的同时,有效解决了会话一致性问题,是构建可靠、稳定的 Web 服务集群的重要保障。

相关推荐
0+11135 分钟前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋1 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
桌面运维家1 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890751 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻2 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_949847754 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906944 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗5 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB5 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
codezzzsleep5 小时前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint