如何微调Spring Cloud Feign客户端?

Abh*_*kar 4 spring-cloud netflix-feign spring-cloud-feign feign spring-cloud-netflix

Spring Cloud 文档说:

如果Hystrix在类路径上,默认情况下,Feign将使用断路器包装所有方法.

  1. 这很好,但如何配置Hystrix选项以忽略某些异常?我有一个ErrorDecoder将HTTP状态代码映射到异常的实现.如果我戴上@HystrixCommand这个方法,Feign会尊重吗?
  2. 我们的要求是记录有关依赖项的每个HTTP调用的各种详细信息.目前,我有一个装饰RestTemplate,这样做.从我在代码中看到的并基于Dave Syer 在这里的答案,Feign没有使用RestTemplate.那么我该如何满足日志记录要求呢?界面feign.Client看起来很有希望,虽然我不完全确定是否使用它.

spe*_*ibb 5

  1. Feign不尊重@HystrixCommand并且不支持忽略异常.我的建议是禁用假装hystrix integration(feign.hystrix.enabled=false)并在假装之外使用hystrix.
  2. Feign支持RequestInterceptors,它将为您提供记录的位置.有关更多信息,请参阅文档.

例:

@FeignClient(name = "stores", configuration = StoreConfiguration.class)
public interface StoreClient {
    //..
}

@Configuration
public class StoreConfiguration {

    @Bean
    public LoggingRequestInterceptor loggingRequestInterceptor() {
        return new LoggingRequestInterceptor();
    }
}
Run Code Online (Sandbox Code Playgroud)