什么是服务熔断和服务降级?

2797 篇文章 2 订阅
2634 篇文章 14 订阅

实际在工作中特别是做服务端测试,肯定会遇到服务熔断与降级相关优化,针对这部分优化,我们测试同学首先得了解这2个术语究竟是什么意思,为了解决什么问题,然后结合实际的业务场景该如何进行测试,今天我们先了解一下具体含义!

一、服务熔断官方释义

是指在某些情况下,为了保护系统稳定和避免系统崩溃,服务提供商会采取一系列措施来限制或暂停服务的机制。服务熔断通常用于分布式系统或网络服务中,以确保系统在面临异常情况时能够保持稳定运行。

服务熔断的原理是通过监控系统的性能指标或服务质量指标,当系统出现异常或负载过高时,自动触发熔断机制,暂时限制或停止某些服务,以降低系统负载,保护系统核心功能的正常运行。服务熔断可以避免系统因为异常情况导致整体系统的崩溃,提高系统的可用性和稳定性。

在实际应用中,服务熔断通常与服务降级、负载均衡等技术结合使用,以确保系统在面临异常情况时能够有序地处理请求,避免系统雪崩效应。服务熔断是分布式系统设计中重要的一环,能够有效提升系统的鲁棒性和可靠性。

二、服务降级官方释义

是指在系统出现异常或负载过高等情况下,为了保障系统的核心功能正常运行,有意地减少或关闭一些次要或不必要的功能,以降低系统的复杂度和负载,确保系统的可用性和稳定性。

三、实际场景列举

服务熔断我们打个比方,客人(请求)去商店买东西,会和服务员(服务A)说:“我要买块面包”,营业员会问面包师(服务B)要一块面包,营业员拿到面包给客人——这是一个正常的过程。假如面包师那边出了问题(这里不关注原因,无论他不在、面包没原料了,都无所谓),营业员的等了半天(等待超时),还是没有拿到面包,于是只好告诉客人,我们没有面包了——这是一个失败的过程。

好了,关键点来了,问题关键点不是后厨出了问题(网络和别的服务是不可靠的),而是营业员一直在等,等的时间还不短,等的这段时间客人也在等,而新的客人同时也在源源不断地进入店里,结果店里人满为患,甚至影响了喝咖啡的客人(服务C)。

所以我们需要服务熔断,当营业员发现等了几次,知道面包师那边出了问题,于是当有客人说:“我要面包”时,营业员立刻就说:“抱歉,面包暂时提供不了”,于是客人立刻就走了,这样一来,店里的客人就不会堆积,也就不会影响需要咖啡的客人,毕竟咖啡师还在好好地工作。

服务降级好比店里要大量促销咖啡(也许是新品,也许是为了处理积压的库存,原因无所谓),需要更多的咖啡师(将服务资源让位给服务C),于是只好暂时让面包师休息(关闭服务B),如果有客人过来买面包,营业员就会直接说:“对不起,今天我们不提供面包”。总结两者的相同之处在于:请求服务A时,可以立刻知道服务B不可用,这叫快速失败;差异在于:服务熔断是一种应对意外情况的保护措施,防止服务A因为服务B的不可用而崩溃,服务降级是因为某些原因,人为主动关闭服务B的行为。

四、总结

熔断机制是应对雪崩效应的一种微服务链路保护机制。当某个微服务不可用或者响应时间太长时,会进行服务降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现,Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内调用20次,如果失败,就会启动熔断机制。服务降级,一般是从整体负荷考虑。就是当某个服务熔断之后,服务器将不再被调用,此时客户端可以 自己准备一个本地的fallback回调,返回一个缺省值。这样做,虽然水平下降,但好歹可用,比直接挂掉强。

五、如何测试

1.熔断生效

针对熔断的阈值进行测试熔断在实际碰到异常场景时达到阈值是否会正常生效,例如指定接口对应的错误码在一定时间内达到一定的次数,则触发熔断逻辑,在熔断状态下的请求是否正确被拒绝或返回预设的响应。

2.熔断恢复

在熔断期间如果服务恢复,达到恢复的标准,此时我们熔断则正常恢复,业务回归正常的逻辑。

总之熔断与降级总的都是为了保证服务最大的可用性。我们根据熔断以及降级的触发的相关条件进行合理测试。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

在这里插入图片描述

 ​​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值