服务降级
就是当被调用方无法提供正常服务时(宕机、网络异常等),通过在ribbon设置fallback,完成调用方的请求,这种方式叫做服务降级,如图:
开发步骤
在之前的demo基础上进行服务降级
①在commons模块中添加一个fallback的工厂类
②在对应的feign接口中指定fallback
③在调用方需要开启服务降级的功能(让user能够接受服务降级),在user的application.yml中开启服务降级
④在调用方(user)的主启动类上添加扫描,扫描factory所在的包
⑤启动eureka、user模块,请求user的url进行测试,如果出现降级显示的内容,表示服务降级设置成功!
注意:此处有个坑!!!
以上做法完成后,并不能做到服务降级的实现!!
原因:
把user模块的ribbon依赖删掉。feign其实已经集成了ribbon,而我们导入的ribbon将feign中的ribbon给覆盖了,而我们又没有给新的ribbon指定http请求、超时时间等配置原因导致的,所以在使用feign调用微服务时就不要再自己引入ribbon,反而破坏了feign与ribbon的整合关系。
此时已经能够完成服务降级!