帮你快速理解、总结文档立即下载

使用熔断保护后端

最近更新时间:2026-07-23 17:07:33

我的收藏

操作场景

本文介绍如何在云原生网关上通过熔断插件实现下述常见熔断场景:
根据后端响应时间进行熔断。
根据错误码进行熔断。

前置条件

已购买网关实例,详情请参见 新建网关
配置了服务(Service)以及路由(Route)。

插件说明

插件名称:TSE BREAKER
分类:Traffic Control
概述:实现对客户端的请求进行熔断,从而保护上游业务服务。
具体能力:
支持响应时间模式和错误码模式。针对不同模式配置熔断开启条件,错误条件支持响应时间模式和错误码模式。
响应时间模式:需配置后端服务响应时间阈值,超出响应时间阈值为一次错误,达到熔断开启条件触发熔断。
错误码模式:需配置异常状态 HTTP 状态码,状态码使用英文逗号隔开,请求返回异常状态码为一次错误,到达熔达到启条件触发熔断。
支持熔断后半开探测:第一次触发熔断,熔断2s,超过时间后,重新转发后端,进行错误条件和健康条件判断。
满足错误条件时,熔断4s,以此类推,直到达到预设的最大探测等待时间,停止指数递增。
满足健康条件(即正常状态达到连续正常请求次数)时,结束熔断。
支持自定义熔断返回:可自定义配置熔断状态 HTTP 状态码、熔断状态 HTTP 响应内容、熔断状态响应头。

插件配置

字段名称
是否必填
字段说明
响应时间阈值
>=1。上游服务后端最大响应时间,单位为秒。
异常状态 HTTP 状态码
默认503,支持[500,……599]。上游服务处于异常状态时返回的 HTTP 状态码范围。
错误率阈值
上游服务在一定时间内触发异常状态的请求次数比例阈值。
连续错误数阈值
>=1,上游服务连续触发异常状态的请求次数阈值。
最大探测等待时间
>=1,最大 300,单位秒,上游服务熔断的最大持续时间。
连续正常请求次数
>=1,上游服务处于健康状态时的连续正常请求次数。
熔断状态 HTTP 状态码
当上游服务处于不健康状态时返回的 HTTP 错误码。
熔断状态 HTTP 响应内容
当上游服务处于不健康状态时返回的 HTTP 响应体信息。
熔断状态响应头
当上游服务处于不健康状态时返回的 HTTP 响应头信息。该字段仅在配置了 break_response_body 属性时生效。

使用场景与操作步骤

场景一:根据错误码进行熔断

1. 登录 TSF 控制台
2. 在左侧导航栏选择云原生网关 ,单击目标实例进入实例详情。
3. 在基础信息页面,单击 Konga 控制台标签查看管理控制台登录方式。
4. 单击链接进入 Konga 控制台登录页面,输入用户名密码进入 Konga 控制台。

5. 进入需要配置熔断的 service 详情页。
6. 单击 Add Plugin 添加插件,在 Traffic Control 分组下选择 TSE BREAKER 插件。
7. 本场景模拟当后端服务返回500,501,502时认为后端异常,连续3次请求错误时触发熔断,熔断返回自定义内容。
在插件中填写以下配置:
错误判断条件:后端服务返回500,501,502。
熔断开启条件:连续错误数超过3次。
熔断响应配置(可选)。
状态码:503
响应头:example-resp-header:kong-cb
响应内容:Service is broken
8. 发起 API 请求,查看3次返回500后熔断成功,返回自定义熔断响应。
HTTP/1.1 503 Service Unavailable //自定义响应状态码
Example-Resp-Header: kong-cb //自定义响应头
Service is broken //自定义响应内容


场景二:根据响应时间进行熔断

1. 登录 TSF 控制台
2. 在左侧导航栏选择云原生网关 ,单击目标实例进入实例详情。
3. 在基础信息页面,单击 Konga 控制台标签查看管理控制台登录方式。
4. 单击链接进入 Konga 控制台登录页面,输入用户名密码进入 Konga 控制台。
5. 进入需要配置熔断的 Service 详情页,单击 Add Plugin 添加插件,在 Traffic Control 分组下选择 TSE BREAKER 插件。
6. 本场景模拟当后端服务响应超过15秒时认为后端异常,连续4次请求错误时触发熔断,请求连续正确2次即关闭熔断。
在插件中填写以下配置:
错误判断条件:后端服务响应时间超过15秒
熔断开启条件:连续错误数超过4次
熔断响应配置(可选)
状态码:503
响应头:example-resp-header:kong-cb
响应内容:Service is broken
熔断关闭条件:连续正常请求达到2次
7. 发起 API 请求,查看4次请求超时后熔断成功,2次请求正常后关闭熔断。