spring cloud feign如何开启熔断,spring cloud feign熔断配置的坑有哪些

科技资讯 投稿 6400 0 评论

spring cloud feign如何开启熔断,spring cloud feign熔断配置的坑有哪些

本章内容给大家谈谈关于遇上spring cloud feign熔断配置的坑有哪些等问题,我们该怎么处理呢。下面这篇文章将为你提供一个解决思路,希望能帮你解决到相关问题。

Spring Cloud Feign熔断配置的坑

Spring Cloud Feign是一个声明式的Web服务客户端,它使得编写Web服务客户端变得更加简单。但是,如果不正确配置Feign,可能会遇到一些坑。下面就来详细介绍Spring Cloud Feign熔断配置的坑。

1. 服务调用超时

Spring Cloud Feign默认情况下,连接超时时间为1秒,读取超时时间为1秒,如果服务调用的时间超过1秒,则会抛出超时异常,此时可以通过配置Feign的连接超时时间和读取超时时间来解决。


@FeignClient(name = "xxx", configuration = MyFeignConfig.class)
public interface MyFeignClient {
    //...
}

@Configuration
public class MyFeignConfig {
    @Bean
    public Request.Options options() {
        return new Request.Options(5000, 10000);
    }
}

2. 异常处理不友好

当Feign调用服务抛出异常时,Feign默认情况下会抛出FeignException异常,这样对于开发者来说不够友好,此时可以通过定义ErrorDecoder来处理异常,让Feign抛出更友好的异常信息:


@FeignClient(name = "xxx", configuration = MyFeignConfig.class)
public interface MyFeignClient {
    //...
}

@Configuration
public class MyFeignConfig {
    @Bean
    public ErrorDecoder errorDecoder(){
        return new MyErrorDecoder();
    }
}

public class MyErrorDecoder implements ErrorDecoder {
    @Override
    public Exception decode(String methodKey, Response response) {
        // ...
    }
}

3. Hystrix不可用

在Spring Cloud Feign中,默认情况下Hystrix是不可用的,如果要启用Hystrix,需要在FeignClient的配置类中添加@EnableHystrix注解:


@FeignClient(name = "xxx", configuration = MyFeignConfig.class)
public interface MyFeignClient {
    //...
}

@Configuration
@EnableHystrix
public class MyFeignConfig {
    // ...
}

4. 自定义Hystrix配置

Hystrix默认的配置可能不能满足实际的业务需求,此时可以通过定义HystrixCommandProperties来自定义Hystrix的配置:


@FeignClient(name = "xxx", configuration = MyFeignConfig.class)
public interface MyFeignClient {
    //...
}

@Configuration
@EnableHystrix
public class MyFeignConfig {
    @Bean
    @Scope("prototype")
    public Feign.Builder feignBuilder() {
        return Feign.builder().commandProperties(
            HystrixCommandProperties.Setter()
                .withExecutionTimeoutInMilliseconds(1000)
        );
    }
}

总结

以上就是为你整理的spring cloud feign熔断配置的坑有哪些全部内容,希望文章能够帮你解决相关问题,更多请关注本站相关栏目的其它相关文章!

编程笔记 » spring cloud feign如何开启熔断,spring cloud feign熔断配置的坑有哪些

赞同 (29) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽