【SpringCloud】Hystrix

what

服务降级:

服务器忙,请稍后再试,不让客户端等待并立刻返回一个友好提示,fallback
哪些情况触发降级?

  • 程序运行异常
  • 超时
  • 服务熔断触发服务降级
  • 线程池/信号量打满也会导致服务降级

降级用在服务提供者还是服务消费者呢?
都可以的,不过大多数情况是用在服务消费者多一些啦。

服务熔断:

类比保险丝达到最大服务访问后,直接拒绝访问,拉闸限电,然后调用服务降级的方法并返回友好提示,fallback
熔断是什么?
熔断机制是对应雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断改节点微服务的调用,快速返回错误的响应信息。
当检测到该节点微服务调用响应正常后,恢复调用链路。

断路器

服务限流:

秒杀高并发等操作,严禁一窝蜂的过来拥挤,大家排队,一秒钟N个,有序进行

why

为什么微服务我们要用Hystrix呢?因为它可以解决分布式系统交互时超时处理和容错的类库, 它同样拥有保护系统的能力。

How

在SpringCloud框架里,熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。使用@HystrixHystrixCommand注解。

maven引入Hystrix依赖

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

假设在调用某个服务的时候出现异常,在方法上加@HystrixCommand注解,通过她中fallbackMethod去调用提示方法。
在这里插入图片描述
假设我们出现超时的异常
在这里插入图片描述

注解

@HystrixProperty

@HystrixProperty全局服务降级
避免代码膨胀,合理减少代码量,我们可以通过@HystrixProperty解决每个方法上加一个降级方法。通过@HystrixProperty直接在类上加@HystrixProperty就可以了,方法上直接写@HystrixCommand注解。
实例:
在这里插入图片描述

@FeignClient

@FeignClient 通配服务降级
通过@FeignClient中的fallback解决了解耦,实现了服务降级,解决了到吗膨胀,代码混乱。
实例:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值