小D课堂 - 新版本微服务springcloud+Docker教程_5-04 feign结合hystrix断路器开发实战下
笔记
4、Feign结合Hystrix断路器开发实战《下》
简介:讲解SpringCloud整合断路器的使用,用户服务异常情况
1、feign结合Hystrix
1)开启feign支持hystrix (注意,一定要开启,旧版本默认支持,新版本默认关闭)
feign:
hystrix:
enabled: true
2)FeignClient(name="xxx", fallback=xxx.class ), class需要继承当前FeignClient的类
开始
feign本身就包含了。hystrix的注解。点进去看openfeign的注解
open-feign里面本身包含了hyxtrix的注解
feignClient做处理
feignClient的注解里面有个fallback的属性
需要自定义一个类实现,新建一个fallback的包
新建类
继承ProductClient并加了注解@Component加入spring容器中
实现了接口的方法,相当于出了异常用这个重写的方法去处理。我们在里面输出一段话
然后我们需要在ProductClient的注解上加上属性fallback是它的实现类
feign默认把hystrix关闭了 我们需要开启。aplication.yml
feign:
hystrix:
enabled: true
启动服务测试。启动ProductService和OrderService还有Eureka的Server端服务
在注册中心看到两个服务都启动起来了
这是正常情况下数据的访问
把productService停掉。再次访问接口
控制台feignClient里面已经走了fallback的方法
多次调用。都会输出
启动productService表示 服务修好了。没问题了。发现再次调用还是会出问题。
productService启动会会向注册中心发送信息告诉它我有哪些服务。orderService会定期去注册中心拿这个服务,拿到后才会去调用。
因为我们重启了productService的服务后需要等一会再去访问,这样就能正常的访问了