负载均衡的部署模式

前言:

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

相关推荐
Meaauf2 小时前
华为 | 二层隧道协议L2TP实验
网络·华为
CQ_YM2 小时前
网络编程之UDP
linux·c语言·网络·单片机·udp
程序员洲洲2 小时前
2025年远程控制软件排行榜:安全性能哪家强?ToDesk/TeamViewer/向日葵等对比
服务器·安全·远程控制
weixin199701080162 小时前
TikTokitem_search_video关键词视频列表接口对接全攻略:从入门到精通
java·服务器·音视频
qqssss121dfd2 小时前
计算机网络(第8版,谢希仁)第四章习题解答
服务器·c语言·网络·单片机·计算机网络
_F_y2 小时前
数据链路层
运维·服务器·网络
怎么没有名字注册了啊2 小时前
VMware 完整版安装 Debian 纯命令行系统(无图形化、超详细全程教程)
linux·服务器·网络·数据库·debian
同聘云2 小时前
阿里云国际站gpu服务器能干什么?阿里云国际站gpu服务器怎么搭建?
服务器·阿里云·云计算
睿思达DBA_WGX2 小时前
Oracle 服务器 ORA-12516 错误的处理过程
服务器·数据库·oracle