共计 736 个字符,预计需要花费 2 分钟才能阅读完成。
1.前言
随着业务的开展,少不了和第三方系统交互,这时候交互失败的重试机制必不可少。spring retry就能发挥作用了,本文将简述如何使用它,达到请求重试的效果。
2.如何集成
添加maven依赖
<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
当然还是熟悉的AOP套娃。由于springboot没有自动启用,我们需要手动使用@EnableRetry启用配置。接下来就和编程式事务的使用类似了,使用Retryable注解
除此之外,spring retry还提供了一个注解Recover,看名字就明白是用来处理收尾工作的
简单看看,它是如何工作的,首先EnableRetry启用了RetryConfiguration配置
OK,看看配置里做了什么,原来添加了AnnotationAwareRetryOperationsInterceptor这个Advice
接着看,发现这个Advice里在做Retryable方法拦截
按情况拦截
这么一看,还是RetryInterceptorBuilder在办事
到这里,发现RetryTemplate,基本明白是RetryTemplate承担了所有,如果我们自己实现,八成就是个循环计数的逻辑,看一下,还真是!
3.小结
本文简述了spring retry的用法,同时粗略的探讨了它的实现原理。
正文完