实施 Spring 批量断路器

Implement Spring batch circuit breaker

我正在构建一个 Spring 批处理作业,在项目处理器步骤中,我正在使用一个外部端点并将值保存到数据库中。外部点有时非常慢,需要超过 60 秒才能响应。因此,作为解决方法,我实现了 restTemplate timeout(15s) 但是,如何在此处实现断路器技术。因此,我的交易超时(即使在实施超时之后)。在 spring-batch.

中是否有任何开箱即用的解决方案

how to implement circuit breaker techniques here

您可以从 spring-retry 库中用 @CircuitBreaker 注释 ItemProcessor#process(参见 maxAttemptsresetTimeout 等属性)并添加恢复用 @Recover.

注释的方法

Michael Minella 在他的演讲中给出了这个场景的完整示例:Cloud Native Batch Processing. And you can find the code example here