美文网首页
springcloud学习笔记

springcloud学习笔记

作者: WK_99c5 | 来源:发表于2020-03-19 15:29 被阅读0次

    参考 周立 所著《SpringCloud与Docker微服务架构实战-完整版》

    1、Feign使用Hystrix添加回退

    Feign已经默认集成了Hystrix,如果使用回退方法的话,可以为用Feign注解的接口增加一个实现类,然后对应实现其方法,并在接口的@FeignClient注解上,添加上fallback属性,值为实现类.class。

    如下在Controller中调用Feign接口UserFeignClient

    如下,接口是UserFeignClient,上面注解@FeignClient里的name为调用的远程服务,fallback的值为FeignClientFallback.class,即为接口UserFeignClient的实现类的名字。

    如下为FeignClientFallback,实现了UserFeignClient接口。里面实现了findById方法。

    当我现在调用UserFeignClient的findById方法时,会出现如下情况,证明已经实现了回退方法。

    2、Hystrix监控

    在接口方法上的@FeignClient的注解里添加fallbackFactory属性,并添加对应的值,该值为接口实现类,如下图

    实现类中要实现FallbackFactory,并实现create方法,我们可以在create方法中返回接口的实现方法,并创建返回对象,打印出相应的日志

    其中有个问题是throwable可能为空,这是Feign之前版本的一个bug,在9.4.0之后已经解决。如我本地,停用了microservice-provider-user服务之后,在浏览器中访问能返回对应的对象,但是log日志中没有对应的reason

    相关文章

      网友评论

          本文标题:springcloud学习笔记

          本文链接:https://www.haomeiwen.com/subject/izbkyhtx.html