针对某些类型的异常,resilience4j bulkhead skipping fallback 方法

resilience4j bulkhead skipping fallback method for certain type of exceptions

我使用 reslience4j 隔板将活动线程数限制为我的一种服务方法。当线程限制超过配置时,它应该转到按预期发生的回退方法。

但是,作为我方法中业务逻辑的一部分,当验证失败时,我会向我的消费者抛出带有自定义消息的 BadRequestException。当 checkedException 发生太多时,控制会转到回退方法。理想情况下不应该是这种情况。

那么我们是否有任何配置来跳过控制进入某些类型的异常的回退方法,类似于我们在 Hystrix 中的配置?

@Bulkhead(name="bhName" fallbackMethod="fallbackMethod")
public void doSomething(){

    //validatiion
    // if validation succeeds
         //do some business logic
    // else if validation fails
        throw BadRequestException("Error Message")
}

public void fallbackMethod(Exception ex){
   log.info("The number of concurrency limit exceeded");
   return null;
} 

只需使用不同的 fallbackMethod 签名:

public void fallbackMethod(BulkheadFullException ex){
   log.info("The number of concurrency limit exceeded");
   return null;
}