操作场景
用户在 TSF 控制台新建服务限流/熔断规则时,如果已通过 Hystrix/Sentinel 等组件配置了服务限流熔断规则,可能会与此处新建的规则产生冲突。如果确定要启用 TSF 的服务治理功能,需要关闭已经自建的规则。
注意
某些配置可能会关闭其他功能,请注意使用,做好验证。
操作步骤
限流
组件 | 关闭方法 |
Resilience | 不支持通过 property 配置,需自行修改代码来关闭。 |
Sentinel | 不支持通过 property 配置,需自行修改代码来关闭。 |
熔断
Hystrix/Spring Cloud Hystrix
hystrix:command:default:circuitBreaker:enabled: false
如果用了 Feign,此方式也可以关闭其中的熔断功能。
Resilience
transitionToDisabledState
示例如下:public class ProviderServiceResilience {private final static String cbName = "default";private final CircuitBreakerRegistry cbRegistry;public ProviderServiceResilience() {cbRegistry = CircuitBreakerRegistry.ofDefaults();}public String run() {try {cbRegistry.circuitBreaker(cbName).executeCallable(...);} catch (Exception e) {}return "resilience fallback\\n";}public void disable() {cbRegistry.circuitBreaker(cbName).transitionToDisabledState();}}
Spring Cloud Circuit Breaker - Resilience
注意
此方法会关闭其他 Resilience 功能,如 TimeLimiter,请谨慎使用。
可以通过 property
spring.cloud.circuitbreaker.resilience4j.enabled
关闭,修改 application.yml:spring:cloud:circuitbreaker:resilience4j:enabled: false
Sentinel
需要自行修改代码来关闭。
Spring Cloud Circuit Breaker - Sentinel
可以通过 property
spring.cloud.circuitbreaker.sentinel.enabled
关闭,修改 application.yml:spring:cloud:circuitbreaker:sentinel:enabled: false