• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

负载均衡无法新建长连接回话

  • 0关注
  • 0收藏,154浏览
席宸 四段
粉丝:2人 关注:10人

问题描述:

负载均衡无法新建长连接回话(比如数据库服务),服务器重启后还是沿用的之前的旧长连接回话,导致应用端数据上传输失败,如何处理?

组网及组网描述:

负载均衡无法新建长连接回话(比如数据库服务),服务器重启后还是沿用的之前的旧长连接回话,导致应用端数据上传输失败,如何处理?

5 个回答
粉丝:1人 关注:8人

可以修改会话老化时间

我让客户试试

席宸 发表时间:2026-09-13 更多>>

我让客户试试

席宸 发表时间:2026-09-13
粉丝:91人 关注:11人

配置下长连接就好了

粉丝:16人 关注:9人

排查处理步骤
1. 检查长连接老化与会话保持配置
确认会话保持(Persistency)配置的老化时间,是否远长于数据库服务器的TCP keepalive或应用层心跳间隔。
确认LB上是否开启了“服务器 Down 后删除会话”的特性。
关键命令:
shell
display loadbalance session persistency
display loadbalance server-pool

2. 配置动态反馈或健康检查联动
确保服务器池(Server Pool)中的健康检查(Health Check)检测到服务器端口Down后,能立即将其置为Failed状态,并配合删除该服务器相关的会话表项。
关键配置:
shell
在服务器池视图下
server-fail delete-session # 部分平台需在虚服务或健康检查视图下联动

3. 处理单边老化
调整TCP长连接的老化时间,并确保开启syn-flood保护及tcp checksum等基础检测。
开启tcp persistent或配置更长的session aging-time tcp。
核心建议:在负载均衡上开启“服务器失效时删除对应会话表项”的强制删除功能,迫使应用端在服务器重启后重新发起三次握手建立新连接。

在负载均衡上开启“服务器失效时删除对应会话表项”的强制删除功能,迫使应用端在服务器重启后重新发起三次握手建立新连接 这个配置在哪里???

席宸 发表时间:2026-09-13 更多>>

在负载均衡上开启“服务器失效时删除对应会话表项”的强制删除功能,迫使应用端在服务器重启后重新发起三次握手建立新连接 这个配置在哪里???

席宸 发表时间:2026-09-13
粉丝:34人 关注:1人

针对您遇到的“负载均衡无法新建长连接回话,服务器重启后仍沿用旧连接导致传输失败”的问题,这通常是因为负载均衡器的会话保持机制(粘性会话)与后端服务器重启后的状态不一致导致的。
当后端服务器重启时,其内存中保存的长连接(如数据库连接池、WebSocket等)会强制中断。但如果负载均衡器未感知到该节点故障,或者会话保持机制仍在将请求路由到该节点,就会导致应用端连接失败。
以下是针对该问题的系统性排查与处理方案:

1. 优化健康检查机制(核心排查)

负载均衡器必须能够准确、快速地感知后端服务器的真实状态,否则会继续向已重启或异常的后端节点转发请求。
  • 检查健康检查协议:确认是否将应用层(HTTP/HTTPS)健康检查误配为了传输层(TCP)检查。TCP检查仅能探测端口连通性,当后端服务进程崩溃但端口仍开放时,负载均衡器会错误判定节点健康并持续转发流量。
  • 调整健康检查参数:如果健康检查间隔过短或超时时间阈值过小,在网络抖动或节点重启恢复的短暂延迟期间,容易将正常波动误判为节点故障,导致节点被频繁摘除;反之,若超时时间过长,则可能导致真实故障节点无法被及时剔除。

2. 排查会话保持与连接状态丢失

节点重启会导致已建立的长连接强制中断。如果未配置合理的会话保持迁移或优雅停机机制,客户端的新请求可能被分发至无会话数据的节点,引发业务报错。
  • 服务器扩容或哈希重算影响:如果使用的是基于源IP哈希的四层会话保持,服务器重启或新增会打破现有哈希分布,造成大面积会话迁移,导致原会话中断。
  • 长连接超时断开机制:为了有效管理资源,负载均衡器在开启会话保持后会设置连接超时时间(例如TCP默认900秒)。如果连接长时间无数据传输,负载均衡器会静默断开连接,客户端通常需要依赖应用层超时机制或 TCP Keepalive 来感知这种断开。

3. 排查网络层与底层资源异常

服务器重启后,底层的网络配置或资源状态可能未正确恢复,导致TCP层连接建立失败。
  • 网络连通性未恢复:检查防火墙规则、安全组策略、路由表项或NAT映射是否在重启后未能正确加载或同步。
  • 资源耗尽或进程异常:节点重启后,后端应用可能因内存泄漏、OOM(内存溢出)终止、配置文件损坏或依赖缺失等原因反复崩溃。这通常表现为连接被提前关闭或拒绝连接,导致负载均衡器无法获取有效响应。
  • 连接跟踪表满:如果压测或高并发时出现请求超时,可能是后端服务器的连接跟踪表(如 nf_conntrack)已满,导致丢弃新建连接的数据包。

4. 检查配置一致性与高可用架构

  • 配置漂移或不一致:集群内各节点间的配置(如权重、SSL协议版本、ACL规则)未保持同步,重启后加载了错误或旧版配置,会导致流量路由异常或访问控制失效。
  • 高可用架构缺陷:如果采用单点部署无冗余,或VRRP心跳链路故障引发脑裂,会导致节点重启后集群无法完成正常的状态协商与流量调度,使服务持续不可用。

粉丝:39人 关注:2人

H3C AD 负载均衡:数据库长连接,后端服务器重启,LB 保留旧会话、无法新建有效连接故障

现象:数据库长连接业务,后端 RS 服务器重启;负载均衡设备仍然保留旧的 TCP 会话 / 会话保持表项,应用继续复用这条失效旧连接,传输数据失败;新的数据库连接无法正常调度。 核心根因:实服务器故障动作默认 keep(保留旧连接,不主动发 RST 清理)+ 会话保持表项老化时间过长 + 健康检查没有及时把 RS 置为 down,RS 重启后 LB 会话表没有清理,应用持续复用已经死亡的旧四元组会话。

一、故障原理

  1. RS 服务器重启,服务器内核 TCP 会话全部清空,但负载均衡四层会话表 + 会话保持(persistence)表还保留在 LB 中
  2. LB 默认故障处理策略:keep,服务器故障后不主动断开已有 TCP 会话,LB 继续把报文转发给已经重启后的 RS。
  3. RS 收到报文,内核找不到对应的 TCP socket,回复 RST。但客户端连接池不识别 RST,反复复用旧连接,不新建连接。
  4. 会话保持表长期不老化,客户端源 IP 匹配会话保持,继续调度到该故障恢复后的 RS,不会触发新连接调度

二、分步处理方案(H3C AD V7)

1. 修改实服务器组故障动作(关键!)

实服务池里面,当 RS 探测为 down 时,对存量连接执行 reset,主动发送 TCP RST 清理旧失效会话。

loadbalance server-pool DB-POOL fail-action reset
  • keep(默认):保留旧连接,不主动断,就是现场当前故障;
  • reset:RS 故障检测到后,LB 主动向客户端和服务器双向发送 RST,销毁旧 TCP 会话,强制客户端重建新连接。

2. 优化健康检查(提前识别服务器重启)

数据库场景,不能只用 ICMP ping,必须用应用层健康检查(TCP 端口 / 数据库探测),服务器数据库进程重启后,及时把 RS 状态置为 down。

#示例:TCP端口健康检查,探测数据库端口 health-check template DB-TCP type tcp port 1521 interval 3 retry 2

绑定到 server-pool。

仅 ping 探测会出现:服务器 OS 正常启动,但数据库服务未就绪,LB 判定 RS UP,转发旧会话,业务报错。

3. 会话保持(persistence)优化,数据库场景

数据库连接池长连接,建议使用源 IP 会话保持,缩短会话保持老化时间,不要设置永不老化

loadbalance persistence ip source-ip aging-time 300

❌严禁数据库业务会话保持设置为永久不老化,服务器重启后表项不会自动清除。

4. TCP 长连接空闲超时(四层会话老化)

调整 TCP ESTABLISHED 状态会话老化,配合应用层 TCP keepalive:

session aging-time state tcp-est 1200

数据库侧操作系统开启 TCP keepalive(linux net.ipv4.tcp_keepalive_time),两端配合探测死连接。

5. 临时应急清理命令(故障发生时)

#查看负载均衡所有四层连接 display loadbalance connection verbose #清除负载均衡存量连接 reset loadbalance connection all #清除会话保持表项 reset loadbalance persistence all

三、运维规范:服务器重启操作流程(规避该问题)

  1. 重启前:把该 RS 设置平滑退出 / 软关机,不再接收新连接,等待存量连接自然老化。
  2. 确认连接耗尽后,再重启数据库服务 / 服务器。
  3. 服务器启动、数据库进程完全就绪后,再把 RS 恢复启用。

错误操作:直接硬重启服务器,LB 来不及清理会话,直接复现该故障。

四、区分两个坑

  1. 四层会话表:TCP 四元组转发表;fail-action reset 用来清理这个。
  2. 会话保持表(persistence):用来保证同一客户端持续调度到同一台 RS;老化时间过长,就算旧会话断了,新连接依然调度到原 RS。

简短总结

  1. 根因:LB 实服务器池默认fail-action keep,服务器重启 LB 不主动发送 RST 清理旧 TCP 会话;会话保持老化时间过长,应用复用失效旧连接。
  2. 核心修复:修改fail-action reset,RS 故障时 LB 主动 RST 踢掉旧连接;使用应用层健康检查(TCP / 数据库探测,不要只用 ping);缩短会话保持老化时间,禁止永久会话保持。
  3. 运维规范:数据库服务器重启前先平滑下线 RS,等连接排空再重启。
  4. 应急:reset loadbalance connection 清理存量失效会话。

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明