Advertisement

支持重试功能

阅读量:

前言

在微服务架构环境下,由于系统内部网络波动可能引发调用超时或失败的问题。从分布式事务处理的角度分析,若业务逻辑中仅执行了一次远程服务的查询操作(例如获取用户服务中的特定信息),当该查询未能成功时,将导致整个事务回滚,这种结果显然是我们希望避免的。因此,可以通过基于Feign的远程调用机制,提升操作成功的概率,从而最大限度地减少回滚的发生。

接下来我们来看代码实现

首先采用AOP注解的方式,定义切面

复制代码
 @Target({ElementType.METHOD, ElementType.TYPE})

    
 @Retention(RetentionPolicy.RUNTIME)
    
 public @interface FeignRetry {
    
  
    
     Backoff backoff() default @Backoff(); //定义重试机制
    
  
    
     int maxAttempt() default 3; //最大重试次数
    
  
    
     Class<? extends Throwable>[] include() default {} ;
    
  
    
  
    
 }
    
    
    
    
复制代码
 @T

全部评论 (0)

还没有任何评论哟~