SpringCloud-4

2019-06-09  本文已影响0人  我叫土豆但他们喊我猫猫

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
上一篇 下一篇

猜你喜欢

热点阅读