服务降级和服务熔断的区别

简介: 服务降级和服务熔断的区别

1.服务降级
概念:服务降级是指在面对高并发请求的时候,根据实际业务使用情况以及流量,对一些服务和页面有策略的不处理或者用一种简单的方式进行处理,从而释放服务器资源的资源以保证核心业务的正常高效运行

    问题产生的原因: 服务器的资源是有限的,而请求是无限的。在用户使用即并发高峰期,会影响整体服务的性能,严重的话会导致宕机,以至于某些重要服务不可用。所以为了保证核心功能的可用性,就需要对某些不重要的服务进行降级处理,舍小保大。

    应用场景:比如说双十一的时候,为了保证付款的服务正常运行,就无法关闭,或者对退款的服务进行降级。

2.服务熔断
概念:应对微服务雪崩效应的一种链路保护机制。

    原因:A->B->C ,如果某一时间段对服务C的调用响应时间过长或者服务C不可用,随着时间的增长,对服务C的调用也越来越多,然后服务C崩溃了,但是链路调用还在,对服务B的调用也在持续增多,然后服务B崩溃,随之A也崩溃,导致雪崩效应。服务熔断是应对雪崩效应的一种微服务链路保护机制。

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

-应用场景:微服务架构中,多个微服务相互调用出使用

需要考虑问题:
如何所依赖的服务对象不稳定
失败之后如何快速恢复依赖对象,如何探知依赖对象是否恢复
3.服务降级和服务熔断区别
触发原因不一样,服务熔断由链路上某个服务引起的,服务降级是从整体的负载考虑
管理目标层次不一样,服务熔断是一个框架层次的处理,服务降级是业务层次的处理
实现方式不一样,服务熔断一般是自我熔断恢复,服务降级相当于人工控制
触发原因不同 服务熔断一般是某个服务(下游服务)故障引起,而服务降级一般是从整体负荷考虑;
一句话:

服务熔断是应对系统服务雪崩的一种保险措施,给出的一种特殊降级措施。而服务降级则是更加宽泛的概念,主要是对系统整体资源的合理分配以应对压力。

服务熔断是服务降级的一种特殊情况,他是防止服务雪崩而采取的措施。系统发生异常或者延迟或者流量太大,都会触发该服务的服务熔断措施,链路熔断,返回兜底方法。这是对局部的一种保险措施。

服务降级是对系统整体资源的合理分配。区分核心服务和非核心服务。对某个服务的访问延迟时间、异常等情况做出预估并给出兜底方法。这是一种全局性的考量,对系统整体负荷进行管理。

限流:限制并发的请求访问量,超过阈值则拒绝;

降级:服务分优先级,牺牲非核心服务(不可用),保证核心服务稳定;从整体负荷考虑;

熔断:依赖的下游服务故障触发熔断,避免引发本系统崩溃;系统自动执行和恢复

相关文章
|
4月前
|
缓存 NoSQL 关系型数据库
熔断方案
【8月更文挑战第20天】
63 0
|
5月前
|
Java Spring
降级与熔断处理
降级与熔断处理
|
7月前
|
缓存 Java 应用服务中间件
常见的限流降级方案
【1月更文挑战第21天】
|
缓存 SpringCloudAlibaba 监控
系统之高可用(二):熔断降级
分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为级联故障效应,最终结果导致整个系统服务不可用
161 0
|
缓存 监控 前端开发
服务降级是什么?
服务降级是在面对系统负载过高、资源不足或外部依赖故障等异常情况下,通过临时屏蔽某些功能或改变服务行为,以保证核心功能的可用性和性能稳定性的一种策略。
517 0
|
前端开发 关系型数据库 MySQL
服务降级熔断小总结|学习笔记
快速学习服务降级熔断小总结
服务降级熔断小总结|学习笔记
|
Java 开发者 Sentinel
SentineI 服务熔断降级的策略 | 学习笔记
快速学习 SentineI 服务熔断降级的策略
137 0
|
算法
熔断和限流原理和使用(2)
熔断和限流原理和使用(2)
189 0
熔断和限流原理和使用(2)
熔断和限流原理和使用(4)
熔断和限流原理和使用(4)
132 0
熔断和限流原理和使用(4)
熔断和限流原理和使用(3)
熔断和限流原理和使用(3)
269 0
熔断和限流原理和使用(3)