在调用第三方接口或者使用MQ时,会出现网络抖动,连接超时等网络异常,所以需要重试。为了使处理更加健壮并且不太容易出现故障,后续的尝试操作,有时候会帮助失败的操作最后执行成功。一般情况下,需要我们自行实现重试机制,一般是在业务代码中加入一层循环,如果失败后,再尝试重试,但是这样实现并不优雅。在SpringBoot中,已经实现了相关的能力,通过@Retryable注解可以实现我们想要的结果。首先来看一下@Retryable注解可以注解于方法上,来实现方法的重试机制。SpringBoot retry的机制比较简单,只需要两个注解即可实现。在启动类上,需要加入@EnableRetry注解,来开启重试机制。前面提到过,@Retryable是基于方法级别的,因此在Service中,需要在你希望重试的方法上,增加重试注解。

SpringBoot @Retryable注解方式

SpringBoot @Retryable注解方式

SpringBoot @Retryable注解方式

SpringBoot @Retryable注解方式

SpringBoot @Retryable注解方式

SpringBoot @Retryable注解方式

SpringBoot @Retryable注解方式

SpringBoot @Retryable注解方式