SpringCloud--熔断

DAY53–SpringCloud–熔断

服务降级的分类

  • (1) 服务降级分为两类
    》自动降级
    超时、失败次数、故障、限流
    A:配置好超时时间
    B:不稳的api调用次数达到一定数量进行降级
    C:调用的远程服务出现故障
    (dns、http服务错误状态码、网路故障、Rpc服务异常),直接进行降级。
    》人工降级
    秒杀、双十一大促降级非重要的服务

服务降级-超时降级

  • (1) 修改Hystrix对请求超时的判断时间
    》默认为两秒
    》也可以修改
    注解配置 方法上
   @HystrixCommand(commandProperties = {@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "2000")})
    public Object get(@PathVariable long id){

服务熔断介绍

  • (1) 什么是服务熔断?
    为了防止整个系统的故障,而采用了一些保护措施
    一般是某个服务异常引起的,相当于“保险丝”,当某个异常条件被触发,直接熔断整个服务,不是等到此服务超时
    A调B,B很慢的话,A也很慢。熔断让A不再调用B,而改成调用C(退路方法)

服务熔断和服务降级的异同

  • (1) 相同点:
    》从可用性和可靠性触发,为了防止系统崩溃
    》最终让用户体验到的是某些功能暂时不能用
  • (2) 不同点:
    》服务熔断一般是下游服务故障导致的,而服务降级一般是从整体系统负荷考虑,由调用方控制
    》触发原因不同

熔断状态机模型(了解)

  • (1)读音
    circuit 美[ˈsɜːrkɪt]
  • (2)状态机有3个状态:
    》Closed:关闭状态(断路器关闭),所有请求都正常访问。
    》 Open:打开状态(断路器打开),所有请求都会被降级。Hystrix会对请求情况计数,当一定时间内失败请求百分比达到阈值,则触发熔断,断路器会完全打开。默认失败比例的阈值是50%,请求次数最少不低于20次。
    》 Half Open:半开状态,不是永久的,断路器打开后会进入休眠时间(默认是5S)。随后断路器会自动进入半开状态。此时会释放部分请求通过,若这些请求都是健康的,则会关闭断路器,否则继续保持打开,再次进行休眠计时
    在这里插入图片描述

服务熔断的配置

  • (1) 三个参数
hystrix.command.default.circuitBreaker.errorThresholdPercentage=50  #错误率,默认50%
hystrix.command.default.circuitBreaker.requestVolumeThreshold=20  #滑动窗口的大小,默认为20
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=5000  #过多长时间,熔断器再次检测是否开启,默认为5000,即5s钟

每当20个请求中,有50%失败时,熔断器就会打开,此时在调用此服务,将会直接返回失败,不再调远程服务。直到5s钟之后,重新检测该触发条件,判断是否吧熔断器关闭,或者继续打开。达到熔断之后,那么后面它就直接不去调该微服务

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值