负载均衡的部署模式

前言:

  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)的概念

相关推荐
zmzmzmalo2 小时前
Linux ELF文件加载与内存管理揭秘
linux·网络·数据库
三言老师8 小时前
K8s集群运行时自动化运维全覆盖落地实操(下)
linux·运维·服务器·网络
Super 含9 小时前
Android 启动优化(五):线程、GC 与 IO 为什么会拖慢启动?
java·服务器·数据库
80s7779 小时前
住宅代理解析:动态住宅IP与静态住宅IP如何选型?
网络·网络协议·tcp/ip
吴声子夜歌10 小时前
网络安全——网络渗透测试(网络扫描)
网络·web安全·php
fish-man10 小时前
ceshi ceshi yixia
网络·安全·web安全
anxiao_m10 小时前
2026制造业云桌面选型攻略,不同生产场景适配方案汇总
大数据·网络·数据库
土星云SaturnCloud10 小时前
产线SOP动作级AI监管方案:土星云SE110S-WC8赋能合规识别、预警与效率分析
大数据·服务器·人工智能·ai·边缘计算
躺不平的理查德10 小时前
嵌入式 Linux 系统移植与 SD 卡量产镜像制作
linux·运维·服务器
一直走下去-明11 小时前
centos7无法安装tcpreplay
linux·运维