路由级熔断 BreakerConfig 字段 类型 说明 windowsize string 统计时间窗口,默认10s,最大不能超过12s breakduration string 熔断时长,默认30s,最大不超过180s slowrequestrt string 定义慢请求的响应延迟时间,超过该响应时长的请求则被认定为慢请求 maxslowrequests int 最大慢请求次数,必须为整数,例如:1000。超过该次数的新请求会被熔断 errorpercent Percent 失败率阈值,时间窗口内错误请求(5XX)比例超过该值,则触发熔断 minrequestamount int 最少请求次数,防止请求量太少时,errorpercent统计失真。 customresponse CustomResponse 自定义返回内容,当请求被熔断时代替后端返回。 注意 表示时间范围的字符串,可以使用以下时间单位的组合: nsec 纳秒 usec/μs 微秒 ms 毫秒 s 或 sec 秒 m 或 min 分钟 h 或 hour 小时。 Percent 字段 类型 说明 value double 百分比值,只能在[0.0,100.0]中取值。 CustomResponse 字段 类型 说明 statuscode int HTTP响应状态码 headertoadd map[string]string 自定义响应添加的Headers body string 自定义响应Body内容 执行脚本验证效果 验证失败率脚本 !/bin/sh curl H "host: bookinfo.com" " curl H "host: bookinfo.com" " curl H "host: bookinfo.com" " curl H "host: bookinfo.com" " grep 'hello, break!' echo "sleep for 10 second to try if recover" sleep 10 curl H "host: bookinfo.com" " sv 验证前需要删除headermatch条件,该脚本只模拟后端返回错误,不设置请求header。这个脚本发起了两次模拟httpbin返回503,一次200。失败率已达66%,下一次请求会被熔断(可以通过设置errorpercent控制失败率,通过minrequestamount控制最少生效次数)。随后sleep 10s在请求验证是否不再熔断。 hello,break的熔断文本可以自行通过customresponse设置成您想要的返回内容。 sleep 10s,这个恢复间隔也可以通过breakduration设置。