SpringCloud-4

4.3 Feign使用Hystrix

由于Hystrix本身已经集成了Hystrix依赖,所以我们可以直接使用,而不用再去引入Hystrix。

  1. 准备工作(类似于Ribbon的操作):

    ①:依次启动Eureka、Discovery、Feign服务,然后访问Feign服务的地址,可以看到正常访问成功。

    image

    ②:关闭Discovery服务,再次访问Feign服务的地址,这时由于无法访问提供者的服务,Feign的界面会报错:
    image

    注:如果仔细观察,会发现Ribbon和Feign的报错信息略微不同:

    Ribbon需要引入Hystrix依赖,并且发生断路时,报错为服务器拒绝链接;

    Feign自带Hystrix体系,发生断路时,报错为没有指定断路回调的方法属性。

    image
  2. 使用Hystrix断路器: 由于Feign不用引入Hystrix依赖,所以直接在原有的Feign服务商进行一些基本修改。 ①:核心类BootFeignApplication不需要改变,修改接口ComputerClient,添加注解接口中映射的fallback函数:

    image

    ②:主类ComputerController不需要改变,新增实现类ComputerClientHystrix:

    image

    注:实现类的类名和接口中的fallback函数的名称一致。

    ③:依次启动Eureka、Discovery、Feign服务,然后访问Feign服务的地址,可以看到正常访问成功。

    关闭Discovery服务,再次访问Feign服务地址:http://localhost:8224/add。此时会报错:

    image
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容