01-Spring实现重试和降级机制

主要用于在模块调用中,出现失败、异常情况下,仍需要进行重复调用。并且在最终调用失败时,可以采用降级措施,返回一般结果。

1、重试机制

我们采用spring 提供的retry 插件,其原理采用aop机制,所以需要额外引入starter-aop包

1、依赖引入


    org.springframework.boot
    spring-boot-starter-aop


    org.springframework.retry
    spring-retry

2、在主启动类或者需要重试的方法所在的类上添加注解@EnableRetry

3、在需要重试的方法上增加注解 @Retryable,表示该方法需要重试。可以定义在接口的抽象方法上,也可以定义在实际的具体方法上。

public interface RetryService {
    /**
     * 指定异常CustomRetryException重试,重试最大次数为4(默认是3),重试补偿机制间隔200毫秒
     * 还可以配置exclude,指定异常不重试,默认为空
     * @return result
     * @throws CustomRetryException 指定异常
     */
    @Retryable(value = {CustomRetryException.class},
        maxAttempts = 4,backoff = @Backoff(200))
    String retry() throws CustomRetryException;
}

@Retryable注解参数说明:

maxAttempts :最大重试次数,默认为3,如果要设置的重试次数为3,可以不写;

value:抛出指定异常才会重试,支持多异常

include:和value一样,默认为空,当exclude也为空时,默认所以异常

exclude:指定不处理的异常

backoff:重试等待时间策略,默认使用@Backoff的value默认为1000L,我们设置为200L。

@Backoff注解中的参数说明:

value:隔多少

你可能感兴趣的:(Spring,Boot场景案例,失败重试,服务降级,spring,boot)