springcloud之Hystrix初识篇—熔断简述

喜欢ヅ旅行 2023-07-19 05:53 157阅读 0赞

熔断的主要感觉就像是电表的保险闸,正常情况下它是关闭的,当发现家里用电量过大超出负荷他就会自动打开开关停止供电,已保证家里不出现电力事故。

Hystrix的熔断也就是像电表保险闸类似的断路器,不过比我们的保险闸更加高级,设置了三种状态。

断路器会实时记录请求的健康状态,并基于一段时间内请求的健康状态改变断路器的状态。

关闭:正常情况下断路器的状态。

开启:当某请求在某段时间内请求错误的次数超过一定的阈值时断路器就会开启,开启后再有该请求过来断路器直接返回错误信息,不在向服务提供者发出请求。(如:设置10S失败6次,当请求失败6次后断路器打开,之后的请求就直接返回错误信息,而不是真的去请求在返回错误信息。若10S内失败5次,那么断路器就不会被打开,还会正常请求。)

检测:当断路器打开一段时间后会将状态自动转换为检测状态,这是他会允许一个(只允许一个)请求去正常访问服务提供者,如果返回信息正常那么断路器关闭,之后的请求都正常访问。如果返回失败那么断路器继续打开,请求直接返回错误信息。

Hystrix的断路器比电表的保险闸高级的地方就是这个检测状态,它会自动检测服务提供者是否正常以此来决定断路器的状态

降级:为保证请求正常返回,在提供者不可用时执行一个备用方案,以确保请求的正常返回。

不同于熔断相对被动(服务提供者出现异常才做熔断),降级的操作一般是我们主动控制的,我们可以控制降级方法中的具体处理逻辑,也可控制是否主动降级(请求过来时直接走备用方案,并不去执行正常的请求)。

例:某些大促活动时我们关闭一些类似帮助中心,关于我们之类的不重要功能,把资源让出来给秒杀之类的重要功能。

发表评论

表情:
评论列表 (有 0 条评论,157人围观)

还没有评论,来说两句吧...

相关阅读

    相关 springcloudHystrix—概念

    基于分布式中因某个微服务不可用而导致的服务雪崩等问题,为防止异常传递进而导致的异常传播等问题,需要实现当某个微服务发生异常时不因为该服务异常而影响依赖该服务的其他微服务正常运行