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之失败重试

相关推荐
学长毕业设计15 分钟前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
东小西24 分钟前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西31 分钟前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring
许彰午38 分钟前
22-DataCenter报文序列化
java·低代码·架构·状态模式
2601_962065251 小时前
[MySQL] SQL优化之性能分析
java·sql·mysql
小范同学_1 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
予昊2 小时前
从零实现“在线五子棋对战“:WebSocket 实时通信 + 段位匹配
java·开发语言·网络·websocket
2601_962203512 小时前
【SpringAI入门】初识SpringAI
java
weixin_461408583 小时前
Mybatis-flex小记
java·开发语言·mybatis
2601_962177133 小时前
【MySQL篇】聚合查询,联合查询
android·java·mysql