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

相关推荐
电商API&Tina2 小时前
Python请求淘宝商品评论API接口全指南||taobao评论API
java·开发语言·数据库·python·json·php
摩西蒙2 小时前
业务监控和常用产品
java·大数据·人工智能
哪里不会点哪里.2 小时前
Spring 核心原理解析:它到底解决了什么问题?
java·后端·spring
qq_254674412 小时前
Cisco Nexus 9504交换机上
java·linux·服务器
咕噜企业分发小米2 小时前
腾讯云在多云管理工具上如何实现合规性要求?
java·云计算·腾讯云
invicinble3 小时前
关于对后端开发工程师,在项目层面的基本需求与进阶方向
java
懒鸟一枚3 小时前
Java17新特性详解
java
戌中横3 小时前
JavaScript 对象
java·开发语言·javascript
crossaspeed3 小时前
面向对象的三大特征和反射(八股)
java·开发语言