Hystrix实现断路器、服务降级、线程隔离

2023-11-12

了解Hystrix之前首先需要明白几个概念,雪崩效应、断路器(熔断机制)、服务降级、线程隔离。

  1. 雪崩效应:默认情况下,tomacat只有一个线程池去处理请求,这样在高并发的情况下大量的请求访问同一个服务器接口,线程池中所有的线程都用来处理访问这个接口的请求,就会导致请求全部堆积起来。这样其他接口有请求时也会阻塞,没有线程来处理,导致服务器崩溃。假设线程池有10个线程,每个线程每秒可以处理10个请求,一个接口有30000个请求,则需要处理五分钟。在这五分钟内如果有其他请求访问时,由于所有线程被占用,用户那边页面就会一直转圈,没有响应。这就是雪崩效应。Hystrix解决雪崩效应的三种方法就是熔断机制、服务降级、线程隔离。
  2. 服务降级:所谓的服务降级就是当没有线程来处理用户请求时,不要让页面一直转圈,用户一直等待,而且给用户返回一个友好的提示信息,比如:当前服务器繁忙,请稍后重试。
  3. 熔断机制:当没有线程可以处理用户请求的时候,不让请求大量堆积,而且和服务器断开连接,不再让后续请求访问服务器,直接利用服务降级给用户返回一个友好提示,多数和服务降级配合使用。
  4. 线程隔离:使用多个线程池,每个线程池负责不同的请求接口,这样即使其中一个接口请求访问数量大导致请求堆积,不会影响其他线程池处理其他接口的请求。

@HystrixCommand默认开启服务降级、熔断机制和线程隔离。
使用@HystrixCommand注解的方法:添加maven依赖(依赖信息添加到parent的pom.xml中),添加@HystrixCommand注解,启动类添加@EnableHystrix注解,配置文件开启Hystrix服务,设置Hystrix超时时间。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过添加@HystrixCommand注解和不添加该注解的接口中打印出来的线程可以看出使用的不是同一个线程池,所以@HystrixCommand默认是开启线程隔离的。这里User服务中添加了1.5秒延迟,导致该接口执行了fallBack方法,但是并不是因为产生了雪崩效应,而是因为hystrix默认超时时间为1秒,1.5秒导致超过了响应时间,页面报错。需要配置超时时间
在这里插入图片描述

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

Hystrix实现断路器、服务降级、线程隔离 的相关文章

随机推荐

  • 编程猫创作工具:新版Kitten新体验

    在少儿编程图形化工具方面 Scratch是老牌的创作工具 最为流行 用的人也最多 但是Scratch界面不友好 本地化功能欠缺 网络访问慢等问题也日渐显著 编程猫自主研发的图形化编程创作工具 源码编辑器应运而生 Kitten以更丰富的素材
  • js 判断是不是浮点

    true 非浮点 false 浮点 isNotFloat theFloat gt if theFloat theFloat theFloat trim else return true 判断是否为浮点数 let len theFloat l
  • 测试数据设计方案

    一 测试覆盖率 测试方法及技巧的应用 真正业务场景的满足 测试数据的设计覆盖 1 测试数据设计方法一 构造测试数据时 需要看数据的开源 数据的来源一般来讲有3个 一个是根据被测系统需求的分析 针对正常业务 异常情况 边界情况等来构建完整的数
  • 思科交换机65系列配置

    65系列 enable 进入配置模式 enable set ip http server enable 开启http服务 enable enable enable set system name sike swtest 配置交换机名称 en
  • Mac 上安装并启动 MySQL 服务

    目录 背景 步骤 步骤 1 官网下载 dmg 文件并安装 步骤 2 在系统设置里启动 MySQL 服务 步骤 3 更改 root 密码 步骤 3 1 停止 MySQL 服务 步骤 3 2 在安全模式下启动 MySQL 服务 步骤 3 3 更
  • 三款免费杀毒软件+clamAV

    第一款 antivir PE 完全免费 http www free av com 软件厂商 H BEDV Datentechnik GmbH 软件主页 http www free av com 厂商邮件 virus free av com
  • 【java养成】:案例:学生管理系统、斗地主洗牌

    案例学习 学生管理系统 学生管理系统 参考书籍 系统首页 用于显示系统的所有操作 并根据用户在控制台的输入选择需要使用的功能 查询功能 用户选择该功能后 在控制台打印所有学生的信息 添加功能 用户选择该功能后 要求用户在控制台输入学生学号
  • Python打印九九乘法表(Python)

    算法 打印九九乘法表 方法一 1 运用range 函数 参数值含左不含右 2 Python的print函数默认换行 这里通过把九九乘法表中在一行的转化成字符串类型再打印的方法解决 3 在每个乘式的后面加一个空格来分隔乘式 for i in
  • NYOJ278 排队 (约瑟夫问题)

    原题链接 参考 百科 约瑟夫问题 经典题 附ac代码 include
  • Pytorch 的损失函数Loss function使用详解

    参考 Pytorch 的损失函数Loss function使用详解 云 社区 腾讯云 目录 1 损失函数 1 nn L1Loss 2 nn SmoothL1Loss 3 nn MSELoss 4 nn CrossEntropyLoss 5
  • 虚拟文件系统VFS框架

    复杂度3 5 机密度3 5 最后更新2021 05 01 AIX虽然仅内置支持五种类型的文件系统 jfs jfs2 nfs CDROM ramfs 远少于Linux 但其设计并不局限于某一种特定的文件系统 而是采用虚拟文件系统的概念 以一种
  • 蓝桥杯C/C++省赛:高斯日记

    目录 题目描述 思路分析 AC代码 题目描述 大数学家高斯有个好习惯 无论如何都要记日记 他的日记有个与众不同的地方 他从不注明年月日 而是用一个整数代替 比如 4210 后来人们知道 那个整数就是日期 它表示那一天是高斯出生后的第几天 这
  • 数据库、表数据的三种删除方式

    第一种 drop table 第二种 delete table t第三种 runcate table 三种方式的区别 Drop table删表 常用于正对表 表结构都会被删除 而delete table和truncate table 只删除
  • 进 4 球得 1 分,阿根廷败北背后的科技与狠活

    内容一览 11 月 22 日 世界杯 C 组首场比赛 沙特阿拉伯 2 1 反超阿根廷 今天我们将逐一盘点阿根廷进 4 球得 1 分背后的科技与狠活 关键词 世界杯 VAR 半自动越位技术 沙特爆冷逆袭 2 1 反超阿根廷 2022 年世界杯
  • 图像增强的两个评价指标:峰值信噪比PSNR和结构相似度SSIM

    两种图像增强评价指标 PSNR和SSIM 峰值信噪比PSNR 结构相似度SSIM python实现 SSIM的代码 PSNR的代码 图像增强的评价指标在像素层面上通常包含平均绝对误差 MAE 均方误差法 MSE 峰值信噪比 PSNR 以及结
  • 第6天:分割处理与中断处理

    6 1 分割处理 6 1 1 bootpack c拆分 6 1 2 MakeFile整理 使用了一般规则 gas c Makefile CC1 o gas c nas gas Makefile GAS2NASK gas nas obj na
  • NumPy使用

    NumPy数组的创建 1 创建数组 array 2 制定数组类型 dtype 3 创建特殊数组 1 元素全为0 zeros 2 元素全为1 ones 3 指定元素范围 arange 4 线段性元素 linspace NumPy数组属性 1
  • 分词工具使用系列——sentencepiece使用

    分词工具使用系列 第一章 sentencepiece使用 第二章 jieba工具使用 文章目录 分词工具使用系列 前言 细说分词 一 sentencepiece是什么 二 sentencepiece使用步骤 准备文本 训练模型 使用模型 前
  • JavaScript简单实现拼图小游戏(附源码和资源)

    JavaScript简单实现拼图小游戏 附源码及资源 JavaScript代码68行 是3年前刚学JavaScript的时候写的 思想很简单 分享一下 拼图是4 4的 共三张图 按照命名规则添加其他图片也可以 资源已上传 下载地址 http
  • Hystrix实现断路器、服务降级、线程隔离

    了解Hystrix之前首先需要明白几个概念 雪崩效应 断路器 熔断机制 服务降级 线程隔离 雪崩效应 默认情况下 tomacat只有一个线程池去处理请求 这样在高并发的情况下大量的请求访问同一个服务器接口 线程池中所有的线程都用来处理访问这