栈 · spring cloud -> Hystrix 断路器 · feign 中的 hystrix

feign 中已经集成了 hystrix 熔断机制,我们可以直接使用。

feign 中的 hystrix 使用,我们需要注意一下几点:

  • 依赖导入

  • 配置启用

  • callBack 编码

依赖导入

在服务消费端的 feign 依赖包中,如果没有 hystrix 依赖,则我们需要加入 hystrix 依赖:

<!-- hystrix -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>

如果 feign 包中已经有 hystrix ,则不用导。

后来发现,我们需要的是 feigh-hystrix 包,不需要上面的包

配置启用

我们使用的是 feign 下 hystrix ,所以对应的配置项也是在 feign 下的。

具体的配置如下:

# feign配置
feign:
    hystrix:
      # 在feign中开启hystrix功能,默认情况下feign不开启hystrix功能
      enabled: true

callBack 编码

在 feign 的 hystrix 中,当消费端消费远程服务的时候,如果远程服务挂掉了,消费端会继而调用 对于的 callBack 服务。

callBack 服务中实现了对远程服务无法调通时的操作,例如一些友好性的提示等。

实现 callBack ,需要注意一下几点:

  • callBack 服务需要实现对应的 Feign 服务接口;

  • 使用 @Component 注解管理服务。

具体的实现如下:

package cn.com.git.order.service.hystrix;

import cn.com.git.order.service.feign.GoodsServiceFeign;
import org.springframework.stereotype.Component;

/**
* 商品服务熔断回调
*/
@Component
public class GoodsServiceCallBack implements GoodsServiceFeign {

    @Override
    public String goodsDetail(int code) {
        System.out.println("----------------- 商品服务 熔断 ------------------");
        return "商品服务调用异常";
    }
}

我们再次调用之前的 order 模块中的服务,测试 Feign 调用:

服务重启后,还是能正常调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值