Spring-Retry重试机制

Spring-Retry重试机制,第1张

Spring-Retry重试机制

Spring实现了一套重试机制,功能简单实用。Spring Retry是从Spring Batch独立出来的一个功能,已经广泛应用于Spring Batch,Spring Integration, Spring for Apache Hadoop等Spring项目。
本文将讲述如何使用Spring Retry及其实现原理。

重试,其实我们其实很多时候都需要的,为了保证容错性,可用性,一致性等。一般用来应对外部系统的一些不可预料的返回、异常等,特别是网络延迟,中断等情况。还有在现在流行的微服务治理框架中,通常都有自己的重试与超时配置,比如dubbo可以设置retries=1,timeout=500调用失败只重试1次,超过500ms调用仍未返回则调用失败。
如果我们要做重试,要为特定的某个 *** 作做重试功能,则要硬编码,大概逻辑基本都是写个循环,根据返回或异常,计数失败次数,然后设定退出条件。 这样做,且不说每个 *** 作都要写这种类似的代码,而且重试逻辑和业务逻辑混在一起,给维护和扩展带来了麻烦。
从面向对象的角度来看,我们应该把重试的代码独立出来。

@EnableRetry - 表示开启重试机制
@Retryable - 表示这个方法需要重试,它有很丰富的参数,可以满足你对重试的需求
@Backoff - 表示重试中的退避策略
@Recover - 兜底方法,即多次重试后还是失败就会执行这个方法

pom文件


    org.springframework.retry
    spring-retry

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5697369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存