LVS知识归纳与模式解析及常见问题复现解析

一、什么是集群

集群(Cluster),是指将多台独立的服务器通过网络连接起来,组成一个整体,对外表现为一个统一的服务器系统。-简单来说,就是"同一套业务、同一套代码部署多台服务器,每台功能完全一致;通过提升单位时间处理请求数扩容。一台故障,其他机器可承接流量"。

1.1 集群的核心价值

价值 说明

高可用性(HA) 当集群中某台服务器发生故障时,其他服务器可以接管其工作,保证服务不中断

负载均衡(LB) 将用户请求分发到集群中的多台服务器,避免单台服务器过载

高性能计算(HPC) 通过并行处理,解决复杂的科学计算或大规模数据处理问题

可扩展性 可以通过增加服务器节点来线性提升集群的处理能力

1.2 集群的三种分类

根据设计目标和实现方式,集群主要分为以下三类:

类型 全称 目标 代表技术

LB 负载均衡集群 提高应用系统的响应能力,处理更多访问请求,减少延迟 LVS、Nginx、HAProxy

HA 高可用集群 提供7×24小时不间断服务,解决单点故障(SPOF) Keepalived、Heartbeat

HPC 高性能计算集群 大规模科学计算、并行处理 MPI、Hadoop

二、LVS 的作用

LVS(Linux Virtual Server) 是由章文嵩博士发起的开源项目,是一个基于 Linux 内核集成的高性能、高可用的四层(传输层)负载均衡器。

LVS 工作在 Linux 内核空间,实现 TCP/IP 协议栈的四层路由转发。-其核心作用是:在操作系统内核层面,将来自客户端的 TCP/UDP 请求,根据预设的调度算法,高效地分发到后端的真实服务器集群,从而实现负载均衡。

💡 为什么 LVS 性能极高? LVS 直接在内核空间处理数据包转发,避免了用户态与内核态之间的频繁上下文切换,因此吞吐量远高于 Nginx、HAProxy 等七层负载均衡器。

2.1 LVS 核心术语

术语 全称 说明

VS Virtual Server 虚拟服务器,即 LVS 集群对外提供的服务

RS Real Server 真实服务器,真正处理业务请求的后端服务器

CIP Client IP 客户端的 IP 地址

VIP Virtual IP LVS 对外提供服务的虚拟 IP 地址

DIP Director IP LVS 调度器在局域网内的 IP 地址

RIP Real Server IP 真实服务器的 IP 地址

三、LVS 的 4 种工作模式及原理

LVS 通过修改 IP 数据包的头部信息(目标地址、端口或 MAC 地址)来实现请求转发。根据修改和转发方式的不同,分为以下四种模式。

3.1 NAT 模式(Network Address Translation)

原理图解:

客户端(CIP)

|

┌─────────────────────────────────────┐

│ LVS Director (VIP/DIP)

│ 请求:CIP -> VIP:80

│ ↓ 目标地址改为 RIP:80

│ 响应:RIP -> CIP (源改为 VIP)

└─────────────────────────────────────┘

| ▲

▼ |

┌──────────┐ ┌──────────┐

│ RS1 │ RS2

│ (RIP1) │ (RIP2)

└──────────┘ └──────────┘

(请求和响应都经过 Director)

工作原理:

请求过程:客户端发送请求到 LVS 的 VIP 上,Director 根据调度算法选择一台 Real-Server,将请求数据包的目标 IP 地址(和端口) 修改为 Real-Server 的地址(和端口),然后转发给 RS。

响应过程:Real-Server 处理完请求后,将响应数据包发送给 Director(RS 的网关必须指向 DIP)。Director 收到后,将响应包的源地址修改为 VIP,再发送给客户端。

特点与限制:

RIP 和 DIP 必须在同一个网段,RS 的网关要指向 DIP

请求和响应报文都经过 Director,Director 容易成为瓶颈-

支持端口映射(可修改目标端口)

VS 必须是 Linux,RS 可以是任意 OS

后端服务器数量一般不超过 10-20 台

3.2 DR 模式(Direct Routing,直接路由)

这是 LVS 默认且应用最广泛的模式,性能最高。

原理图解:

客户端(CIP)

|

┌─────────────────────────────────────┐

│ LVS Director (VIP/DIP)

│ 请求:CIP -> VIP:80

│ ↓ 只改目标 MAC 地址,IP 不变

└─────────────────────────────────────┘

|

▼ (二层转发,改 MAC)

┌──────────┐ ┌──────────┐

│ RS1 │ RS2

│ (VIP配 │ (VIP配

│ 在lo上) │ 在lo上)

└──────────┘ └──────────┘

| ▲

└────────────────────┘

(响应直接返回客户端,不经过 Director)

工作原理:

请求过程:客户端发送请求到 VIP,Director 根据调度算法选择一台 RS,只修改数据包的目标 MAC 地址为 RS 的 MAC 地址(IP 地址和端口均不修改),通过局域网将数据包发送给 RS。

响应过程:RS 处理完请求后,直接将响应数据包返回给客户端,不再经过 Director。

为什么 RS 能直接回包给客户端? 因为 RS 的 lo 接口上也配置了 VIP,响应包的源地址是 VIP,客户端认这个地址。

关键要求:

Director 和 RS 必须在同一个物理网段(二层可达)

RS 的 lo 接口需要配置 VIP,并抑制 ARP 响应(防止 IP 冲突)

仅请求报文经过 Director,响应报文直接返回客户端

优点: 性能极高,Director 压力小(只转发请求,不处理响应)

3.3 TUN 模式(IP Tunneling,IP 隧道)

原理图解:

客户端(CIP)

|

┌─────────────────────────────────────┐

│ LVS Director (VIP/DIP)

│ 请求:CIP -> VIP:80

│ ↓ 封装 IPIP 隧道,目标为 RIP

└─────────────────────────────────────┘

|

▼ (IPIP 隧道封装)

|

┌──────────┐ ┌──────────┐

│ RS1 │ RS2

│ (支持 │ (支持

│ IPIP) │ IPIP)

└──────────┘ └──────────┘

| ▲

└────────────────────┘

(响应直接返回客户端)

工作原理:

请求过程:客户端请求到达 Director 后,Director 将请求报文封装在 IPIP 隧道中,发送给 RS。

响应过程:RS 解封装后处理请求,直接将响应返回给客户端,不经过 Director

特点:

解决了 LVS 和 RS 跨 VLAN 的问题

RS 必须支持 IPIP 隧道(需加载 ipip 模块)

响应不经过 Director,性能较好

由于隧道封装有额外开销,性能略低于 DR 模式

3.4 FULLNAT 模式

注意:FULLNAT 不是 Linux 内核原生支持的模式,需要给内核打补丁。淘宝、百度等公司广泛使用。

原理图解:

客户端(CIP)

|

┌─────────────────────────────────────────────┐

│ LVS Director (VIP/LIP)

│ 请求:CIP -> VIP:80

│ ↓ DNAT: 目标改为 RIP:80

│ ↓ SNAT: 源地址 CIP 改为 LIP

└─────────────────────────────────────────────┘

|

┌──────────┐ ┌──────────┐

│ RS1 │ RS2

│ (RIP1) │ (RIP2)

│ 看到源 │ 看到源

│ 地址=LIP │ 地址=LIP

└──────────┘ └──────────┘

工作原理:

FULLNAT 是 NAT 模式的扩展,在 NAT 基础上同时做 DNAT 和 SNAT:

DNAT:将目标地址从 VIP 改为 RIP(同 NAT)

SNAT:将源地址从 CIP 改为 LIP(Local IP,LVS 的本地 IP)

为什么 FULLNAT 能解决跨 VLAN 问题? 因为 RS 看到的源地址是 LIP(LVS 的本地 IP),回包时自然将 LIP 作为目标地址,路由可以正常工作,不再要求 RS 的网关指向 Director。

特点:

优点:LVS 和 RS 可以跨 VLAN,部署灵活;支持水平扩容(多 LVS 对多 RS)

缺点:性能不如 DR 模式;RS 无法直接获取客户端真实 IP(需要将 CIP 放在 TCP Option 中传递)
LVS****工作模式总结
lvs-nat与lvs-fullnat:请求和响应报文都经由Director
lvs-nat: RIP的网关要指向DIP
lvs-fullnat: RIP和DIP未必在同一IP网络,但要能通信
lvs-dr与lvs-tun: 请求报文要经由Director,但响应报文由RS直接发往Client
lvs-dr: 通过封装新的MAC首部实现,通过MAC网络转发
lvs-tun: 通过在原IP报文外封装新IP头实现转发,支持远距离通信

四、LVS 的 13 种调度算法

LVS 的调度算法由内核模块 IPVS 实现,当前版本共支持 13 种调度算法。-这些算法分为静态算法和动态算法两类。
静态方法:仅根据算法本身进行调度,不考虑RS的负载情况
动态方法:主要根据每RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度

4.1 静态调度算法(4 种)

静态算法不考虑后端服务器的实时负载,仅根据预设规则分配请求。
RR: roundrobin 轮询 RS分别被调度,将请求按顺序轮流分配到各服务器,均等对待,当RS配置有差别时不推荐
WRR:Weighted RR 加权轮询根据RS的配置进行加权调度,根据服务器处理能力(权重)分配请求,权重高的处理更多,性能差的RS被调度的次数少
SH: Source Hashing 实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
DH: Destination Hashing 目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请 求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商

4.2 动态调度算法(9 种)

动态算法会考虑后端服务器的实时连接数或负载情况。

算法 缩写 说明

最少连接 LC 将请求分配给当前活动连接数最少的服务器

加权最少连接 WLC 结合权重和连接数,权重高的可承受更多连接

基于局部性的最少连接 LBLC 针对目标 IP,找出最近使用的服务器;主要用于 Cache 集群

带复制的局部性最少连接 LBLCR LBLC 的增强版,维护目标 IP 到服务器组的映射

最短期望延迟 SED 基于 WLC,额外考虑服务器的当前连接数,初始连接高权重优先

最少队列调度 NQ SED 的改进版,第一轮均匀分配,后续使用 SED

故障转移调度 FO 将请求转发到故障转移组中权重最高的服务器

溢出连接调度 OVF 基于活动连接数的溢出调度

最小连接哈希 MH 基于最小连接数的哈希调度

4.3 算法选择建议

场景 推荐算法

服务器性能相近, 无状态服务 RR(轮叫)

服务器性能差异大 WRR(加权轮叫)

长连接应用(如数据库连接池) LC / WLC(最少连接)

Cache 缓存集群 LBLC / LBLCR

需要 IP 亲和性(同一 IP 到同一 RS) SH(源地址散列)
ipvsadm****命令
核心功能:
集群服务管理:增、删、改
集群服务的RS管理:增、删、改
查看
-a #添加realserver
-e #更改realserver
-t #tcp协议
-u #udp协议
-f #火墙 标签
-r #realserver地址
-g #直连路由模式
-i #ipip隧道模式
-m #nat模式
-w #设定权重
-Z #清空计数器
-C #清空lvs策略
-L #查看lvs策略
-n #不做解析
--rate :输出速率信息
例如

#设定服务器vip,端口及调度算法

root@lvs-server \~# ipvsadm -A -t 172.25.254.100:80 -s rr

#指定使用防火墙标记来进行轮询

root@lvs-server \~# ipvsadm -A -f 66 -p 3000

#更改权重

root@lvs-server \~# ipvsadm -E -t 172.25.254.100:80 -s wrr

#删除

root@lvs-server \~# ipvsadm -D -f 66

NAT模式环境设定

使用脚本修改vsnode网卡ip

bash 复制代码
[root@vsnode ~]# vmset.sh eth0 172.25.254.100 vsnode
[root@vsnode ~]# vmset.sh eth1 192.168.0.100 vsnode noroute

修改网卡并设置网关,只能有一个网关,然后下载HTTP的服务设置开机自启动,不能重启服务的话,一般是端口被其他服务占用了,导入rs1的ip,方便等会儿轮询查看,rs2同理

bash 复制代码
[root@RS1 ~]# vmset.sh eth0 192.168.0.10 RS1 noroute
[root@RS1 ~]# nmcli connection modify eth0 ipv4.gateway 192.168.0.100
[root@RS1 ~]# nmcli connection reload
[root@RS1 ~]# nmcli connection up eth0
[root@RS1 ~]# route  -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.100   0.0.0.0         UG    100    0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0


#设定访问业务真实数据
[root@RS1 ~]# dnf install httpd -y
[root@RS1 ~]# systemctl enable --now httpd
[root@RS1 ~]# echo RS1 - 192.168.0.10 > /var/www/html/index.html

我的eth1是仅主机模式,所以使用的eth1

测试联通性,不通一般是网关问题

bash 复制代码
[root@vsnode ~]# curl  192.168.0.10
RS1 - 192.168.0.10
[root@vsnode ~]# curl  192.168.0.20
RS2 - 192.168.0.20
bash 复制代码
#1,开启内核路由功能
[root@vsnode ~]# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
[root@vsnode ~]# sysctl  -p
net.ipv4.ip_forward = 1
原理解析:Linux 主机默认不会转发非本机的 IP 包。在 NAT 模式下,VS(调度器)收到客户端的请求包后,需要将包转发给后端的 RS(真实服务器)。如果没有开启此功能,数据包到达 VS 后会被内核直接丢弃,无法进入 ipvsadm 的处理流程。

#2.编写策略
[root@vsnode ~]# ipvsadm -C
clean,清理之前所有的策略
[root@vsnode ~]# ipvsadm -A -t 172.25.254.100:80 -s wrr
-A:--add-service,添加一个新的虚拟服务。-t:--tcp-service,指定协议为 TCP,后跟 VIP(虚拟 IP) 和端口 172.25.254.100:80。这是客户端实际访问的入口地址。-s wrr:--scheduler,指定调度算法为 加权轮询(Weighted Round Robin)。
[root@vsnode ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m  -w 1
-a:--add-server,在已有的虚拟服务中添加一台真实服务器。
-r:--real-server,指定真实服务器的 IP 和内网端口(192.168.0.10:80)。
-m:--masquerading,指定工作模式为 NAT 模式。这是最关键的命令选项,表示 VS 会对请求做 DNAT(目标地址转换),并在响应时做 SNAT(源地址转换)。
-w 1:--weight,设置权重为 1。因为调度算法是 wrr(加权轮询),该权重决定了 RS 接收流量的比例。两台都是 1,意味着流量 1:1 轮询。
[root@vsnode ~]# ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.20:80 -m  -w 1
[root@vsnode ~]# ipvsadm -Ln
-L:--list,列出当前所有虚拟服务。
-n:--numeric,不解析主机名和端口,直接显示数字 IP 和端口(避免 DNS 解析卡顿)
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.254.100:80 wrr
  -> 192.168.0.10:80              Masq    1      0          0
  -> 192.168.0.20:80              Masq    1      0          0

测试

bash 复制代码
for i in {1..10};do curl 172.25.254.100;done

持久化处理

bash 复制代码
#利用自定义文件进行持久化
[root@vsnode ~]# ipvsadm-save -n
-A -t 172.25.254.100:80 -s wrr
-a -t 172.25.254.100:80 -r 192.168.0.10:80 -m -w 2
-a -t 172.25.254.100:80 -r 192.168.0.20:80 -m -w 1
ipvsadm-save:将内核中的 IPVS 规则导出为标准格式。
-n:--numeric,以数字形式显示 IP 和端口,否则恢复时如果 DNS 解析失败或解析出不同 IP,会导致规则恢复异常。
注意 -w 2 和 -w 1,表示 RS1 的权重已调整为 2,RS2 为 1。此时你之前的 wrr 算法会让 RS1 处理约 2/3 的流量,RS2 处理约 1/3。

[root@vsnode ~]# ipvsadm-save -n > /mnt/ipvs.rule
将标准输出重定向到 /mnt/ipvs.rule。这个文件本质是一个纯文本脚本,包含了一系列 ipvsadm 恢复指令
[root@vsnode ~]# ipvsadm -C
[root@vsnode ~]# ipvsadm-restore < /mnt/ipvs.rule
ipvsadm-restore:从标准输入读取规则并加载进内核

DR模式环境设定

路由器

禁用 ipvsadm 服务(避免干扰)

systemctl disable --now ipvsadm.service

ipvsadm -C

配置网络接口

vmset.sh eth0 172.25.254.100 router # 外网IP,网关自动设为172.25.254.2(默认)

vmset.sh eth1 192.168.0.100 router noroute # 内网IP,无网关

开启内核路由转发

echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf

sysctl -p

添加 SNAT 规则,让内网设备(RS/VS)能访问外网

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.100

注:也可用 MASQUERADE,但此处固定源IP。

vsnode

配置 eth0:内网IP 192.168.0.50/24,网关指向路由器(192.168.0.100)

vmset.sh eth0 192.168.0.50 vsnode norouter # 无外网网关

手动修改连接文件,确保网关为 192.168.0.100(vmset.sh 可能未设)

nmcli connection modify eth0 ipv4.gateway 192.168.0.100

nmcli connection reload

nmcli connection up eth0

在 lo 上配置 VIP(192.168.0.200/32)

cd /etc/NetworkManager/system-connections/

cp -p eth0.nmconnection lo.nmconnection

vim lo.nmconnection # 修改:type=loopback, interface-name=lo, address1=127.0.0.1/8, address2=192.168.0.200/32, method=manual

nmcli connection reload

nmcli connection up lo

验证路由和IP

route -n

ip a

RS1

配置 eth0:IP 192.168.0.10/24,网关指向路由器(192.168.0.100)

vmset.sh eth0 192.168.0.10 RS1 noroute

nmcli connection modify eth0 ipv4.gateway 192.168.0.100

nmcli connection reload

nmcli connection up eth0

在 lo 上配置 VIP(192.168.0.200/32)

cd /etc/NetworkManager/system-connections/

cp -p eth0.nmconnection lo.nmconnection

vim lo.nmconnection # 同 vsnode 配置,仅 address1=127.0.0.1/8, address2=192.168.0.200/32

nmcli connection reload

nmcli connection up lo

抑制 ARP 响应(防止 VIP 冲突)

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

安装 httpd 并设置测试页

dnf install httpd -y

echo "RS1 - 192.168.0.10" > /var/www/html/index.html

systemctl enable --now httpd

RS2

配置 eth0:IP 192.168.0.20/24,网关指向路由器

vmset.sh eth0 192.168.0.20 RS2 noroute

nmcli connection modify eth0 ipv4.gateway 192.168.0.100

nmcli connection reload

nmcli connection up eth0

lo 配置 VIP

cd /etc/NetworkManager/system-connections/

cp -p eth0.nmconnection lo.nmconnection

vim lo.nmconnection # 同上

nmcli connection reload

nmcli connection up lo

ARP 抑制

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

httpd

dnf install httpd -y

echo "RS2 - 192.168.0.20" > /var/www/html/index.html

systemctl enable --now httpd

Client

配置 eth0:外网IP 172.25.254.99/24,网关指向路由器外网IP 172.25.254.100

vmset.sh eth0 172.25.254.99 client norouter

手动修正网关(vmset.sh 可能未设置正确)

nmcli connection modify eth0 ipv4.gateway 172.25.254.100

nmcli connection modify eth0 ipv4.dns 8.8.8.8

nmcli connection reload

nmcli connection up eth0

验证路由

route -n

测试与 VIP 的连通性

ping 192.168.0.200

curl 卡住,ping 通 → RS 网关指向 VS,响应被 VS 丢弃

检查:RS 上 route -n,网关必须指向独立路由器

ping 不通 VIP → ARP 没响应

检查:VS 上 ip a 看 VIP 是否在物理接口;或 arp_ignore=0 测试

RS 抢占 VIP 导致网络中断 → ARP 抑制未设置

检查:RS 上 cat /proc/sys/net/ipv4/conf/all/arp_ignore,必须为 1

返回路径 → RS 默认网关必须指向路由器,不能是 VS

RS 必须能直连客户端(网关指向路由器)

RS 必须抑制 ARP(否则抢 VIP)

利用火墙标记解决轮询错误

bash 复制代码
RS1+2
dnf install mod_ssl -y
systemctl restart httpd


Vsnode
ipvsadm -A -t 192.168.0.200:80 -s rr
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10 -g
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20 -g

ipvsadm -A -t 192.168.0.200:443 -s rr
ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.10:443 -g
ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.20:443 -g


错误示范
curl 192.168.0.200
curl -k https://192.168.0.200

解决方案

在 VS 上打防火墙标记
iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 6666
基于标记创建 LVS 服务
ipvsadm -C
ipvsadm -A -f 6666 -s rr
ipvsadm -a -f 6666 -r 192.168.0.10 -g
ipvsadm -a -f 6666 -r 192.168.0.20 -g
验证规则ipvsadm -Ln
iptables -t mangle -L -n -v
测试
curl 192.168.0.200
curl -k https://192.168.0.200

查标记:iptables -t mangle -L -n -v,看 pkts 计数器是否增长

查服务:ipvsadm -Ln,看 FWM 下有 RS,ActiveConn 是否增加

查 RS:curl localhost 和 curl -k https://localhost 必须都通

利用持久连接实现会话粘滞

bash 复制代码
配置防火墙标记
iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 6666

基于标记创建LVS服务
ipvsadm -C
ipvsadm -A -f 6666 -s rr -p 300
ipvsadm -a -f 6666 -r 192.168.0.10 -g
ipvsadm -a -f 6666 -r 192.168.0.20 -g
ipvsadm -Ln

测试:观察连接追踪表
curl 192.168.0.200
curl -k https://192.168.0.200
watch -n 1 ipvsadm -Lnc

总结

本文系统梳理了 LVS 负载均衡的核心知识体系:

主题 核心要点

集群概念 多台服务器组成整体,提供 LB/HA/HPC 三种能力

LVS 作用 内核级四层负载均衡,高性能、高可用

4 种模式 NAT(低性能)、DR(最高性能)、TUN(跨 VLAN)、FULLNAT(跨 VLAN+灵活)

13 种算法 4 种静态 + 9 种动态,覆盖不同场景

多端口轮询 防火墙标记(FWM)+ 统一调度解决

会话粘滞 持久连接(PPC/PCC/FWM)实现会话保持

LVS 在实际生产中的典型架构:

Internet

|

┌─────────────────┐

│ LVS Director │ ← 四层负载均衡

│ (Keepalived) │ ← 高可用(主备切换)

└─────────────────┘

|

┌─────────────────┐

│ Nginx 集群 │ ← 七层负载均衡(可选)

└─────────────────┘

|

┌─────────────┼─────────────┐

▼ ▼ ▼

┌──────────┐ ┌──────────┐ ┌──────────┐

│ RS1 │ │ RS2 │ │ RS3 │ ← 应用服务器

└──────────┘ └──────────┘ └──────────┘

│ │ │

└─────────────│─────────────┘

┌─────────────────┐

│ Redis/Session │ ← 会话共享

└─────────────────┘

相关推荐
梦想三三2 小时前
LangChain Output Parser 实战:从字符串到结构化数据的完整指南
android·服务器·langchain·github·uv
netho02 小时前
影刀rpa证书题库使用教学
运维·服务器·rpa
无足鸟ICT3 小时前
【RHCA+】$[]
linux·运维·服务器
运维技术小记3 小时前
国产化环境配置 VNC 远程桌面:麒麟 V10 实战
linux·运维·服务器
xiaoye-duck4 小时前
《Linux系统编程》Linux 系统多线程(八): C++ 高并发线程池全链路深度解析与从零手撕实现
linux·c++·线程池
爱码少年4 小时前
一条Shell命令实现文件目录服务器间快速转移
服务器·shell
giaming0234 小时前
告别Docker Desktop!一款轻量级原生开发环境管理工具:FlyEnv
运维·docker·容器
laboratory agent开发4 小时前
智能体多工具串联执行中途失败,部分写入的数据如何回滚
运维·服务器·数据库
智塑未来4 小时前
金融 AIOps 选型指南:银行证券智能运维平台怎么选
运维·人工智能·金融