服务降级与服务熔断区别

2023-11-08

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

概念:

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

原因:

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

应用场景:

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

需要考虑的问题:

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

服务熔断:

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

概念:

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

原因:

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

应用场景:

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

需要考虑问题:

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

服务降级和服务熔断区别

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

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

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

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

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务降级与服务熔断区别 的相关文章

  • QT vector转QVector(来自stackflow)

    std vector
  • el-popover弹出框更新位置刷新定位

    问题背景 当使用el popover弹框提示 又需要同时加载数据时 就会出现位置错位的现象 原因不言而喻 插件先计算了el popover的位置 然后加载数据又改变了el popover的宽高 如下 问题解决 模拟触发元素被点击 this
  • Python接口自动化测试之pytest:(一)参数化执行

    Pytest是非常流行的Python测试框架 适用于单元测试 UI测试 接口测试 一 一个简单的Pytest测试例子 Pytest可以在命令行模式下直接使用命令执行测试脚本 执行Pytest命令后将会自动匹配到以test开头或结尾的文件 并
  • python入门教程之爬虫的概述及简单实践练习

    文章目录 一 我们先了解用户获取网络数据的方式 二 简单了解网页源代码的组成 1 web基本的编程语言 2 使用浏览器查看网页源代码 三 爬虫概述 1 认识爬虫 2 python爬虫 3 爬虫分类 4 爬虫应用 5 爬虫是一把双刃剑 6 p

随机推荐

  • arcgis10.2 SDE (sqlserver)安装及使用

    1 下载 链接地址 http pan baidu com s 1DsMEe 提取密码 3in6 2 安装 3 数据库的安装与配置 数据库的安装不赘述 需要说明白的是 如果是安装多了多个数据库 数据库实例的名字一般是 主机名 实例名 可以通过
  • 与服务器的连接以获取信息,怎么从服务器获取数据库连接

    怎么从服务器获取数据库连接 内容精选 换一换 创建弹性云服务器 请参见 弹性云服务器用户指南 该弹性云服务器用于连接云数据库RDS实例 需要与目标实例处于同一虚拟私有云内 正确配置安全组 使得弹性云服务器可以通过 连接地址 访问云数据库RD
  • dga 分析

    02n 0iy6gn3ozzwmyu 7i43n9qil1g1z2 com0e527eaf 5ec5 4623 9fe9 e459583acd72 com0fmgm1cuu7h1279dghgka0ltg com0gqo9jx0ir0rjy
  • javascript 贪心算法说明

    贪心算法 贪心算法遵循一种近似解决问题的技术 期盼通过每个阶段的局部最优选择 当前最好的解 从而达到全局的最优 全局最优解 最少硬币找零问题 最少硬币找零是给出要找零的钱数 以及可以用硬币的额度数量 找出有多少种找零方法 如 美国面额硬币有
  • 推荐系统实践(一)----基于用户的协同过滤算法(UserCF)

    随着信息技术和互联网的发展 人们逐渐从信息匮乏的时代走入了信息过载的时代 在这个时代 无论是信息消费者还是信息生产者都遇到了很大的挑战 如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情 这个时候就需要推荐系统 推荐系统不需要用户提供
  • 【GPU】GPU状态显示和部分指标含义

    首先打开C盘 找到NVSMI文件夹 找到nvidia smi exe 打开cmd 将其exe拖到命令提示符窗口 回车后显示GPU信息 相应的指标信息如下 GPU GPU 编号 Name GPU 型号 Persistence M 持续模式的状
  • RocksDb与LevelDB

    1 RocksDB也开始支持HDFS 允许从HDFS读取数据 而LevelDB则是一个比较单一的存储引擎 2 RocksDB支持一次获取多个K V 还支持Key范围查找 LevelDB只能获取单个Key 3 RocksDB除了简单的Put
  • 基于深度学习的车辆信息识别(一):车辆颜色识别

    背景 导师给的一个项目任务 要求对卡口拍摄的车辆监控图片进行自动识别 识别目标包括 车牌号 车辆颜色 车辆品牌 具体到如奥迪A6之类 驾驶人是否系安全带 是否贴有年检标志 等等 相当有挑战性的任务 哈 打算先实现相对简单一些的任务 如颜色
  • linux下安装node环境

    目录 1 在官网下载node的linux版本 2 下载连接服务器的Xshell和Xftp工具 3 Xshell和Xftp连接到远程服务器 4 使用Xftp将下载好的linux的node版本移动到服务器上 5 使用Xshell进行解压安装 6
  • 队列 和 循环队列

    队列也是一种运算受限制的线性表 它只允许在表的一端进行插入 而另外一段只允许进行删除 允许删除的一端称为队头 Front 允许删除的一端称为队尾 Rear 顺序队列实际上是受限的顺序表 和顺序表一样 顺序队列也必须采用一个数组来存放当前数据
  • MySQL精简复习

    1 常用关键字增删查改 INSERT DELECT SELECT UPDATE 以及表创建 CREATE 在使用DELETE时 不要省略WHERE子句 否则就会错误地删除表中所有行 INSERT INTO 表名 各个字段名称用逗号隔开 VA
  • 电子设计竞赛指导总结

    这次电子设计竞赛 收获良多 首先说明 作品没有做出来 下面从几个方面分析自己的缺点 1 不做没有准备的事 带领团队人员时要知道每个人的水平功底 这次等待一个人写stm32的采样加分析 大致算法已提供 写了一天半 加写串口 写了半天 2 总体
  • Linux系统之I/O进程

    Linux系统之I O进程 1 C库和C程序的编译过程 1 1 C库的分类 1 1 1 静态库的概念 1 1 2 制作静态库 1 1 3 动态库的概念 1 1 4 制作动态库 1 2 编译过程 共四步 2 标准I O 2 1 文件类型 2
  • C++中结构体的构造函数

    2023年8月5日 周六上午 在C 中 结构体和类是非常相似的 它们都可以具有构造函数 事实上 在C 中 结构体和类之间的唯一区别就是默认的访问权限不同 结构体可以有默认构造函数 带参数的构造函数 拷贝构造函数等 就像类一样 构造函数用于初
  • 目标检测评估指标

    1 5评估指标 评估指标是评价目标检测算法方法好坏的重要依据 目标检测有 IoU 交并比 Precision 精确度 Recall 召回率 AP 平均正确率 mAP 平均类别AP 等多种评价指标 1 IoU IoU 用来评价目标检测算法的对
  • 华为机试HJ69 矩阵乘法

    HJ69 矩阵乘法 Python 题目 解题思路 代码 结果 题目 解题思路 1 多组输入 需要循环 2 主要是结果数组的初始化和各个元素的计算 分清楚行列 单维数组的初始化 0 for i in range x 多维数组的初始化 0 fo
  • 前端单元测试-karma+mocha+chai

    一 概念普及 1 单元测试运行环境 运行环境是集成一系列功能的工具 我们可以通过它来选择 测试框架 自动打开浏览器 查看测试结果等功能 我们可以把它近似的理解为vue的vue cli 我们选用karma作为运行环境 2 单元测试框架 测试框
  • 关于安装pyecharts报错 No module named ‘pyecharts_snapshot

    安装pyecharts后使用会出现如下错误 ERROR lml utils failed to import pyecharts snapshot Traceback most recent call last File usr lib p
  • 分别用opencv和yolo3实现口罩佩戴的状态检测,附代码和数据集

    分别用opencv和yolo3实现口罩佩戴的状态检测 附代码和数据集 一 基于opencv实现口罩佩戴检测 1 环境配置 2 项目介绍 3 相关源码 4 相关补充 二 基于yolo3实现口罩佩戴检测 1 yolo3基本原理 1 1 yolo
  • 服务降级与服务熔断区别

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