IDEA开发SpringCloud指南(六)—给Feign添加Hystrix熔断器

一 Hystrix 熔断器

在微服务架构中,根据业务拆分成一个个的服务,服务与服务之间可以通过RPC相互调用,在SpringCloud中可以用RestTemlate+ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,待哦用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。

为了解决这个问题,业界提出了熔断器模型

Netflix开源了Hystrix组件,实现了熔断器模式,SpringCloud对着一组件进行了整合。

当对特定的服务调用不可用达到一个阙值(Hystrix是5秒20次)熔断器会被打开。熔断器打开后,为了避免连锁故障,通过fallback方法可以直接返回一个固定值。

二  Feign增加Hystrix熔断器

2.1 Feign是自带熔断器的,但默认是关闭的,需要在配置文件中打开它,在配置文件里增加如下代码:

feign:
  hystrix:
    enabled: true

2.2.在Application里增加@EnableHystrix注解开启Hystrix,指定EurekaFeignServiceHystrix为熔断类

@FeignClient(value="eureka-provider",fallback = EurekaFeignServiceHystrix.class)
public interface EurekaFeignService {

    @RequestMapping("/hello")
    public String goHello();
}

2.3 创建EurekaFeignServiceHystrix熔断类,并实现对应的Feing接口

@Component
public class EurekaFeignServiceHystrix implements EurekaFeignService {
    @Override
    public String goHello() {
        return "sorry,error";
    }
}

2.4 运行server,此时断开服务提供者eureka-provider,显示如下

重新输入 http://localhost:8792/hello ,显示如下,证明调用熔断成功

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值