服务熔断与服务降级

服务熔断与服务降级服务熔断的原理 业内普遍采用断路器模式原理 当远程服务被调用时 断路器将监视这个调用 如调用时间太长 断路器将会介入并中断调用 此外 断路器将监视所有对远程资源的调用 如对某一个远程资源的调用失败次数足够多 那么断路器会出现并采取快速失败 阻止将来调用此远程资源的请求 断路器实现 阿里公司出的 Sentinelnetf 的 Hystrix 示例 Hystrix 中熔断的常用配置 circuitBreak requestVolum 默认值 20 意思是至少有 20 个请求才进

服务熔断的原理:

业内普遍采用断路器模式 

原理: 当远程服务被调用时,断路器将监视这个调用,如调用时间太长,断路器将会介入并中断调用。此外,断路器将监视所有对远程资源的调用,如对某一个远程资源的调用失败次数足够多,那么断路器会出现并采取快速失败,阻止将来调用此远程资源的请求.

断路器实现: 阿里公司出的Sentinel netflix的Hystrix 

示例
Hystrix中熔断的常用配置:

circuitBreaker.requestVolumeThreshold 默认值20.意思是至少有20个请求才进行errorThresholdPercentage错误百分比计算。比如一段时间(10s)内有19个请求全部失败了。错误百分比是100%,但熔断器不会打开,因为requestVolumeThreshold的值是20. 这个参数非常重要, circuitBreaker.sleepWindowInMilliseconds //过多长时间,熔断器再次检测是否开启,默认为5000,即5s钟 circuitBreaker.errorThresholdPercentage //设定错误百分比,默认值50%,例如一段时间(10s)内有100个请求,其中有55个超时或者异常返回了,那么这段时间内的错误百分比是55%,大于了默认值50%,这种情况下触发熔断器-打开。 按照以上配置的熔断器如下: 每当20个请求中,有50%失败时,熔断器就会打开,此时再调用此服务,将会直接返回失败,不再调远程服务。直到5s钟之后,重新检测该触发条件,判断是否把熔断器关闭,或者继续打开 

服务降级

服务降级主要有两种场景:

一、当下游的服务因为某种原因响应过慢,下游服务主动停掉一些不太重要的业务,释放出服务器资源,增加响应速度!

二、当下游的服务因为某种原因不可用,上游主动调用本地的一些降级逻辑,避免卡顿,迅速返回给用户!

服务熔断可视为降级方式的一种!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176220.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午10:27
下一篇 2026年3月26日 下午10:27


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号