更新时间:2025-01-09 GMT+08:00
分享

访问熔断状态的方法时报错异常

问题描述

运行时报错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

解决方案

  1. 当程序报出这个错误时,说明使用了熔断功能,且此时方法处于熔断状态(熔断器状态为OPEN)。当访问熔断状态的方法时就会抛出这个异常。
  2. 熔断器的状态变化时,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:这个状态下,方法不可以访问。

相关文档