SpringBoot4.0新特性-Resilience之失败重试

从Spring7.0版本开始,Spring Framework核心模块已经集成了常用Resilience相关功能,主要包括了对方法调用的失败重试支持以及并发控制支持。SpringBoot 4.0默认的Spring的版本就是Spring 7.0, 因此SpringBoot 4.0自然也就具有了这些特性。本文先来学习下失败重试,下一篇再来学习并发控制。

注解式失败重试@Retryable

@Retryable 注解可以加在单个方法上,设置方法级别的重试,也可以加在类上,给类中所有的通过代理调用的方法统一指定重试特性,使用起来非常简单,仅需2步:

  • 在启动类添加@EnableResilientMethods
java 复制代码
@EnableResilientMethods
@SpringBootApplication
public class Springboot4Application {
	public static void main(String[] args) {
		SpringApplication.run(Springboot4Application.class, args);
	}
}
  • 在业务类或者方法上添加@Retryable
java 复制代码
@Retryable
@GetMapping(path = "/demo")
public String demo(){
    log.info("RetryController demo");
    int a = 1/0;
    return "demo";
}

默认情况下,当方法调用抛出任何异常时都将触发重试:初始失败后最多进行 3 次重试尝试(maxRetries = 3),且每次重试之间间隔 1 秒延迟。因此,如果业务方法一直失败的话,最多会被调用1(初始调用)+ 3(最多重试)=4次。

更多关于自定义重试的内容请参考:SpringBoot4.0新特性-Resilience之失败重试

相关推荐
云原生指北3 小时前
GitHub Copilot SDK 入门:五分钟构建你的第一个 AI Agent
java
Leinwin7 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
薛定谔的悦7 小时前
MQTT通信协议业务层实现的完整开发流程
java·后端·mqtt·struts
enjoy嚣士8 小时前
springboot之Exel工具类
java·spring boot·后端·easyexcel·excel工具类
罗超驿8 小时前
独立实现双向链表_LinkedList
java·数据结构·链表·linkedlist
盐水冰9 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
凸头9 小时前
CompletableFuture 与 Future 对比与实战示例
java·开发语言
wuqingshun3141599 小时前
线程安全需要保证几个基本特征
java·开发语言·jvm
努力也学不会java9 小时前
【缓存算法】一篇文章带你彻底搞懂面试高频题LRU/LFU
java·数据结构·人工智能·算法·缓存·面试
攒了一袋星辰9 小时前
高并发强一致性顺序号生成系统 -- SequenceGenerator
java·数据库·mysql