Spring Boot 引入 Guava Retry 实现重试机制

为什么要用重试机制

在如今的系统开发中,为了保证接口调用的稳定性和数据的一致性常常会引入许多第三方的库。就拿缓存和数据库一致性这个问题来说,就有很多的实现方案,如先更新数据库再删除缓存、先更新缓存再更新数据库,又或者是异步缓存写入。然而某些场景下出现更新数据库成功,但删除缓存失败,又或者是更新缓存失败但更新数据库失败了。因此为保证缓存数据库的一致性,我们可以尝试引入重试机制来实现,当数据库更新成功后去删除缓存,如果删除失败就进行重试。

引入 Guava Retry 库实现重试机制

引入依赖

在引入依赖前,先创建一个 Spring Boot 工程,这里我就不演示了。

        
            com.github.rholder
            guava-retrying
            1.0.6
        

编写重试器的配置类

常见的重试策略

  1. 重试间隔时间,等待进入下一次重试的时间
  2. 重试的次数,超过设定次数就停止重试
  3. 重试的时间限制,规定重试时的时间限制,若重试过程中超过了这个时间就会抛出异常
  4. 重试时机,表明在什么场景需要重试,是抛出异常、还是返回 true,还是返回 false 呢。

在 config 包下编写一个重试器的配置类,设置重试的策略,当我们想在项

你可能感兴趣的:(Guava,guava,java,spring,java-ee)