负载均衡的部署模式

前言:

  1. 负载均衡的部署模式决定了负载均衡器"站在哪里、以何种身份工作",而核心功能则定义了它"能做什么、提供什么价值"。 部署模式为功能的实现提供了网络基础和可能性,而核心功能的也反过来影响着部署模式的选择

  2. 该章节是负载均衡章节的第二章,主要介绍一下负载均衡的部署模式,会话保持等内容


一、 负载均衡的部署模式

部署模式主要解决网络流量如何流入和流出负载均衡器的问题,它为所有后续功能的实现划定了规定的空间

  • 路由模式(网关模式) :负载均衡器作为网络中的默认网关。所有进出服务器池的流量(请求和响应)都必须经过它。易于管理,但负载均衡器可能成为性能瓶颈

  • 桥接模式(透明模式):负载均衡器像网桥一样工作在网络中,对客户端和后端服务器"透明"(IP/MAC地址不变)。服务器响应可以直接返回给客户端,部署简单,效率提高

  • 服务端直接返回模式:负载均衡器只处理入站请求的分发,后端服务器处理完毕后,直接使用自己的IP地址将响应包发回给客户端(不再经过负载均衡器)。这极大减轻了负载均衡器的压力,但要求服务器与客户端路由可达

二、 会话保持(Session Persistence)

会话保持,也称会话亲和性 ,是指负载均衡器将来自同一客户端 的一系列相关联请求,持续地定向发送到同一台后端服务器上的机制

  • 为什么需要会话保持? 解释在用户登录、购物车等有状态应用中,需要将同一用户的多次请求定向到同一台后端服务器,以保证会话信息的连续性

  • 技术本质 :在客户端(或网络流)与一台特定的后端服务器之间,建立一个临时的、稳定的映射关系,该关系在一个会话周期内持续有效

  • 没有会话保持的: 如果用户A的登录请求被分发到服务器1 ,服务器1为其创建了Session。下一秒,用户A添加购物车的请求被轮询到服务器2 ,而服务器2的内存中没有 用户A的Session,系统会认为用户未登录,购物车操作失败。这会直接导致用户登录态丢失、数据混乱、操作中断

  • 常见实现方式

    • Cookie插入:负载均衡器在第一个响应中插入一个唯一Cookie,后续客户端请求会携带此Cookie,负载均衡器据此识别用户并转发

    • Cookie重写:应用服务器已经设置了Cookie,负载均衡器修改其中的服务器标识信息

    • 应用层Session ID识别:七层负载均衡器可以解析HTTP请求体或Header中的Session ID进行绑定

三、 健康检查机制详解

负载均衡的健康检查是系统高可用性的"生命线"。它如同一套7x24小时不间断的脉搏监控仪,确保流量只会被导向真正健康的服务器

  • 检查类型

    • 被动健康检查:通过观察正常请求的响应(如TCP连接失败、HTTP 5xx错误)来判断服务器状态。反应迅速,但存在漏判的情况

    • 主动健康检查 :负载均衡器主动发起探测请求到后端服务器,根据响应判断其状态。可分为:

      • TCP检查:尝试与服务器的指定端口建立TCP三次握手。成功即认为健康

      • HTTP(S) GET检查 :发送GET请求到特定URL(如/health),检查返回状态码和内容

      • 自定义脚本检查:负载均衡器在本地或通过Agent执行一个自定义脚本。脚本可以检查系统资源(CPU、内存)、依赖服务(数据库连接)、特定文件等,并返回成功或失败

  • 检查参数:间隔时间、超时时间、成功/失败阈值。这些参数的精细配置直接影响高可用性的灵敏度

四、 负载均衡的高级功能

这些功能让负载均衡从单纯的"流量分发器"变为"应用交付控制器"

  • SSL/TLS终结 :在负载均衡器上完成HTTPS请求的解密 ,并将明文的HTTP请求转发给后端服务器。响应在负载均衡器上再被加密后返回给客户端

  • 内容压缩与缓存:压缩响应内容以节省带宽;缓存静态资源(如图片、CSS),直接返回给用户,减轻后端压力

  • Web应用防火墙:提供基础的SQL注入、跨站脚本等应用层攻击防护

  • 流量整形与限速:控制到特定服务器或URL的流量速率,防止资源被滥用,保证服务公平性

  • 网络隔离与IP隐藏:作为统一的对外入口,负载均衡器背后的服务器群可以部署在私有网络中,不直接暴露公网IP

五、 负载均衡的问题

  • 单点故障:负载均衡器本身成为新的单点

  • 解决方案:高可用集群(Active-Standby或Active-Active模式),通过VRRP等协议实现故障切换

  • 性能瓶颈:负载均衡器的处理能力上限

  • 解决方案:选择更高性能的设备/软件,或采用DNS轮询+多层负载均衡架构进行横向扩展

  • 配置与管理的复杂性:特别是七层负载均衡的规则配置可能非常复杂。需要良好的运维流程和工具。

  • 后端服务器的状态同步 :当使用会话保持时,如果某台服务器故障,如何迁移用户会话?这引出了分布式会话存储(如Redis)的概念

相关推荐
用户0328472220701 小时前
如何搭建本地yum源(上)
运维
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz3 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
网络研究院3 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest3 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化