美文网首页
Feign, Hystrix使用笔记

Feign, Hystrix使用笔记

作者: 王睿同学 | 来源:发表于2018-03-21 14:22 被阅读0次
    1. 如果 @FeignClient 标注的接口扩展了其他接口,则设置 fallback 后,Spring 会提示被扩展的接口有两个实现 Bean,改为设置 fallbackFactory 可以解决此问题。需要注意的是,FallbackFactory的实现类必须为 Spring 中的组件
    import java.util.List;
    
    import com.yonyou.ocm.common.rules.RuleDto;
    import feign.hystrix.FallbackFactory;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.stereotype.Component;
    
    @Slf4j
    @Component
    public class RuleClientFallbackFactory implements FallbackFactory<RuleClient> {
      @Override
      public RuleClient create(Throwable throwable) {
          return new RuleClient() {
              @Override
              public List<RuleDto> getEnabledCommonRules() {
                  log.info("Fallback for RuleClient.getEnabledCommonRules");
                  return null;
              }
    
              @Override
              public List<RuleDto> getEnabledRulesByPackage(String packageName) {
                  log.info("Fallback for RuleClient.getEnabledRulesByPackage");
                  return null;
              }
          };
      }
    }
    
    1. 超时时间配置:Hystrix 的超时时间应当大于 Ribbon 的超时时间。否则在控制台会出现一条警告信息。
    • Hystrix
      hystrix:
        command:
          default:
              execution:
                  isolation:
                      thread:
                          # 应该大于(ribbonReadTimeout + ribbonConnectTimeout) * (maxAutoRetries + 1) * (maxAutoRetriesNextServer + 1)
                          timeoutInMilliseconds: 21000
      
    • Ribbon
      ribbon:
        ReadTimeout: 5000
        ConnectTimeout: 5000
      

    相关文章

      网友评论

          本文标题:Feign, Hystrix使用笔记

          本文链接:https://www.haomeiwen.com/subject/sokgqftx.html