服务降级:系统有限的资源的合理协调

概念:

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

原因:

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

应用场景:

多用于微服务架构中,一般当整个微服务架构整体的负载超出了预设的上限阈值(和服务器的配置性能有关系),或者即将到来的流量预计会超过预设的阈值时(比如双11、6.18等活动或者秒杀活动)
服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。这样,虽然提供的是一个有损的服务,但却保证了整个系统的稳定性和可用性。

需要考虑的问题:

区分那些服务为核心?那些非核心
降级策略(处理方式,一般指如何给用户友好的提示或者操作)
自动降级还是手动降

服务熔断:

应对雪崩效应的链路自我保护机制。可看作降级的特殊情况

概念:

应对微服务雪崩效应的一种链路保护机制,类似股市、保险丝

原因:

微服务之间的数据交互是通过远程调用来完成的。服务A调用服务,服务B调用服务c,某一时间链路上对服务C的调用响应时间过长或者服务C不可用,随着时间的增长,对服务C的调用也越来越多,然后服务C崩溃了,但是链路调用还在,对服务B的调用也在持续增多,然后服务B崩溃,随之A也崩溃,导致雪崩效应
服务熔断是应对雪崩效应的一种微服务链路保护机制。例如在高压电路中,如果某个地方的电压过高,熔断器就会熔断,对电路进行保护。同样,在微服务架构中,熔断机制也是起着类似的作用。当调用链路的某个微服务不可用或者响应时间太长时,会进行服务熔断,不再有该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。
服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。
在Spring Cloud框架里,熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。

应用场景:

微服务架构中,多个微服务相互调用出使用

需要考虑问题:

如何所依赖的服务对象不稳定
失败之后如何快速恢复依赖对象,如何探知依赖对象是否恢复

服务降级和服务熔断区别

触发原因不一样,服务熔断由链路上某个服务引起的,服务降级是从整体的负载考虑
管理目标层次不一样,服务熔断是一个框架层次的处理,服务降级是业务层次的处理
实现方式不一样,服务熔断一般是自我熔断恢复,服务降级相当于人工控制
触发原因不同 服务熔断一般是某个服务(下游服务)故障引起,而服务降级一般是从整体负荷考虑;
一句话:

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

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

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

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

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

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

服务降级与服务熔断区别相关推荐

  1. 高并发之服务降级和服务熔断____服务降级、熔断、限流的区别

    高并发之服务降级和服务熔断 服务降级: 服务压力剧增的时候根据当前的业务情况及流量对一些服务和页面有策略的降级,以此环节服务器的压力,以保证核心任务的进行. 同时保证部分甚至大部分任务客户能得到正确的 ...

  2. java服务降级与服务熔断区别_【原创】谈谈服务雪崩、降级与熔断

    引言 首先,之所以谈这个话题呢,是发现现在很多人对微服务的设计缺乏认识,所以写一篇扫盲文.当然,考虑到目前大多微服务的文章都是口水文,烟哥争取将实现方式讲透,点清楚,让大家有所收获! OK,我要先说明 ...

  3. 并发编程-26 高并发处理手段之服务降级与服务熔断 + 数据库切库分库分表

    文章目录 服务降级与服务熔断概述 服务降级举例 服务熔断 VS 服务降级 服务降级要考虑的问题 Hystrix 数据库切库分库分表 高可用的一些手段 服务降级与服务熔断概述 服务熔断: 一般是指软件系 ...

  4. springcloud(Hystrix服务降级,服务熔断)

    基础知识 首次分布式服务系统面临的问题 复杂的分布式体系结构中的应用程序有数十个依赖关系,每个依赖有时候难免发生问题,这个时候可能引发连锁反应,导致整个系统雪崩. 所以就有了Hystrix: 官网地址 ...

  5. 07蚂蚁-高并发解决方案——1.Hystrix服务降级,服务隔离,服务熔断,服务限流,CDN

    高并发服务降级特技 背景 在今天,基于SOA的架构已经大行其道.伴随着架构的SOA化,相关联的服务熔断.降级.限流等思想,也在各种技术讲座中频繁出现.本文将结合Netflix开源的Hystrix框架, ...

  6. 【服务治理】服务熔断、服务降级、服务限流、流量削峰、错峰

    文章目录 服务熔断.服务降级和服务限流 服务熔断 服务降级 服务限流 实现 步骤三.Polly在.NetCore项目中封装 流量错峰.流量限流.流量削峰 流量错峰 服务端错峰策略 客户端错峰策略 流量 ...

  7. 服务降级(服务回退)

    服务降级(服务回退) 所有的 RPC 技术里面服务降级是一个最为重要的话题,所谓的降级指的是当服务的提供方不可使用的时候,程序不会出现异常,而会出现本地的操作调用. 例如:在每年年底 12306 都是 ...

  8. java服务降级与服务熔断区别_服务降级和服务熔断

    服务熔断 在微服务架构中,微服务之间的数据交互通过远程调用完成,微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,此时如果链路上某个微服务的调用响应时间过长或者不可用,那么对微服务 ...

  9. 服务降级和服务熔断的区别_Spring Cloud 熔断 隔离 服务降级

    一.hystrix hystrix主要实现熔断和隔离,限流的功能基本没有,通过fallback实现服务降级和快速失败.核心是HystrixCommand.配置主要包含exection.fallback ...

最新文章

  1. 成功解决TypeError: __init__() got an unexpected keyword argument 'n_iterations'
  2. php5.6 event,php安装event扩展
  3. jzoj4282-[NOIP2015模拟10.29B组]平方数游戏【构造】
  4. LSTM模型结合LDA对序列性文本建模 阅读笔记 2017 ICML
  5. SQLITE3 使用总结(2)[ZT]
  6. php 判断是否为安卓,通过http user-agent判断是否为手机浏览器
  7. Junit单元测试/反射/注解
  8. FragmentActivity和Activity的区别
  9. pythonfor循环语句例子_Python for循环学习总结
  10. java缩小pdf,如何使用Java缩小PDF文档中的内容?
  11. 王佩丰VBA学习笔记
  12. 百度人脸识别技术应用004---利用百度云离线SDK例子程序百度在线人脸库人脸识别接口_实现在线人脸识别
  13. Pcshare远控源码偏重分析(一)
  14. OLD:用于单变量和多变量异常值检测的SPSS宏
  15. ISP (互联网服务提供商)
  16. 提交您的博客到各大网站
  17. 两个int类型数据交换的神级操作
  18. 【应用层】“世纪”大案之 我与网络地址的抗争
  19. 计算机编程高中能学吗,高中生怎么学习计算机编程
  20. 明日之后 找不到服务器,明日之后登录服务器错误怎么办 登录服务器错误请重试解决方法...

热门文章

  1. 计算机文化学习笔记1
  2. Attempt to set a non-property-list object 报错问题
  3. goodix gt911 在 Android 开发板上的适配流程
  4. ZZULIOJ Python题解1023: 大小写转换
  5. 计算机专业目录结构,考研专业目录_2018考研:计算机系统结构专业解析_沪江考研...
  6. mysql预处理语句_MYSQL 预处理语句
  7. 【Liunx常用操作】LVM逻辑卷的介绍和相关操作(创建、删除、扩缩容)
  8. Delphi类似QQ皮肤控件,欢迎试用!
  9. 机器学习笔记:贝叶斯方法与正则化的关系
  10. linux ssh连接交换机_设置交换机SSH的详细命令