访问熔断状态的方法时报错异常
问题描述
运行时报错Request processing failed; nested exception is io.github.resilience4j.circuitbreaker.CallNotPermittedException: CircuitBreaker 'com.huaweicloud.testclientcontrol.serivce.impl.UserServiceImpl#testFallBack' is OPEN and does not permit further calls。
解决方案
- 当程序报出这个错误时,说明使用了熔断功能,且此时方法处于熔断状态(熔断器状态为OPEN)。当访问熔断状态的方法时就会抛出这个异常。
- 熔断器的状态变化时,clientcontrol会打印出如下的日志:
[com.huaweicloud.devspore.clientcontrol.core.ClientControlRegistryComponent] - [ClientControlCircuitBreakerSignal:2024-06-14T10:12:59.268797400+08:00[Asia/Shanghai]: CircuitBreaker 'com.huaweicloud.testclientcontrol.serivce.impl.UserServiceImpl#testFallBack' changed state from CLOSED to OPEN]
熔断器有三个状态:
- CLOSED:这个状态下,方法可以正常访问。
- HALF_OPEN:这个状态下,方法可以正常访问。
- OPEN:这个状态下,方法不可以访问。