首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLB 七层全后端异常后仍在转发,就绪检查该如何取舍?

问CLB 七层全后端异常后仍在转发,就绪检查该如何取舍?

提问于 2026-11-12 22:12:21
回答 1关注 0查看 11

场景:广州地域一台公网 CLB(不是传统型负载均衡),HTTPS 监听 443,一条 URL 转发规则,后端协议 HTTP。两个可用区各 2 台 CVM,权重都大于 0,未开会话保持。健康检查是 HTTP GET /ready,正常状态码只保留 2xx,响应超时 2 秒,检查间隔 5 秒,健康阈值和不健康阈值都是 3。下单接口在这四台上,依赖同地域云数据库 MySQL 8.0。

现象:

  1. MySQL 主备切换的几秒内,四台 /ready 都返回 500。十几秒后,绑定后端服务详情里四台都变成异常。异常之后新请求没有被拒绝,仍打到这四台上,下单几乎全部失败。只异常一个可用区时,流量会切到另一组,这点符合预期。
  2. 数据库恢复后 /ready 已返回 200,控制台健康状态还要再连续成功几次才变回健康。这段时间业务已经能成功,健康检查告警还在响。
  3. 客户端对 500 做了立即重试。四台都异常时,重试仍进同一批后端,数据库刚恢复时连接数被打满。

已尝试:

  1. 不健康阈值从 3 调到 5,只是更晚进入全部异常,之后仍然继续转发。
  2. /ready 改为只探活进程、不探数据库。全部异常不再出现,但数据库不可用时流量照样进来,重试一样把连接打满。
  3. 手工把一台权重置 0 后再看,全部异常时这台不再接新请求。故障时来不及人工改,恢复时还要逐台加回。

问题:

  1. 一条七层 URL 规则下,全部后端异常后仍把新请求转给这些后端,这是固定行为吗?有没有监听器或规则参数能改成直接失败,而不是继续转发?
  2. /ready 该不该包含数据库依赖?包含会把四台一起打成异常并继续转发,不包含又摘不掉真实故障。客户端重试在这个窗口里该怎么限制,才不会在恢复瞬间把数据库连接打满?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档