我正在尝试使用弹簧重试断路器。我的要求是仅针对特定类型的重复例外情况打开电路。对于所有其他异常,我想在不断开电路的情况下将异常传递回调用方。我观察到的是,巡回赛开放了所有类型的异常,而不仅仅是特定的异常。想知道这是如何设计的吗?
我的要求:当我调用远程服务时,我只想为任何网络错误打开服务。如果我从远程服务收到任何数据验证错误,我只想将有意义的异常传递回业务层。
当我在使用框架时,我看到电路为所有异常打开。有人可以建议使用弹簧重试断路器是否可以达到上述要求?如果是,您能指出一些示例代码吗?
预先感谢, 贾根(B Jagan)
答案 0 :(得分:0)
是;这就是它的工作方式;当您使用include
或exclude
异常类型时,它与最大尝试次数有关。
当引发“可重试”异常时,在maxAttempts
内发生openTimeout
之前,电路不会断开。如果无法重试异常,则在第一次尝试时电路就会断开。
您需要自定义重试策略才能执行所需的操作。