引入springcloud报错。common依赖找不到_10行代码搞定hystrix,值得收藏,spring cloud实践(5)...

01 注册eureka

02 eureka后台监控加权限

03 feign使用

04 引用common组件

当provider服务挂掉以后或者因为网络原因无法访问的时候,我们会通过熔断机制告诉其他的consumer服务不要再去调用这个provider了,直到provider服务恢复为止。今天我们来看看spring cloud 中的hystrix是如何实现的。来一起动手试试。

consumer 服务修改

由于consumer 服务会去调用provider服务,所以在provider服务无法返回结果或者出现问题的时候,consumer这端需要考虑熔断机制和异常处理。

针对依赖项,我们不用做修改之前已经引入了feign了,他里面自带了hystrix的依赖包所以这里我们不用再次引入,只用确定就可以了。

检查pom.xml 中是否存在dependency

org.springframework.cloud spring-cloud-starter-feign

在application.yml中加入配置

feign: hystrix: enable: true
8382c64e1c9b723a383fa2b286f8c02d.png

然后,我们需要建立一个处理调用服务异常的机制。我们建立一个feign client fallback的class,这个类用来处理当feign client调用provider的时候出现异常情况的处理。说白了,就是调用provider异常了,就执行这个类里面定义的方法中的内容。

c14c6d08951fc4a4afe8645b4390a1ca.png

由于,是对UserFeignClient异常的处理,所以需要实现UserFeignClient这个接口中的方法。这里我们需要重写的方法是login,当调用provider的login方法失败的时候,我们就直接返回一个false就好了。当然,你可以根据对应的业务在这个方法中做服务降级,例如:获取服务本地的数据,或者提供缓存中的数据,等等。

@Componentpublic class UserFeignClientFallback implements UserFeignClient{ @Override public boolean login(@RequestBody User user) { return false; }}

再回到UserFeignClient接口,定义一下异常处理的class也就是上面定义的UserFeignClientFallBack 类。

baac7e7022f972049ec53cab512d6524.png

在方法的annotation上面加上这个class的定义就好了。

@FeignClient(name = "demo-eureka-client-provider
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值