当前位置: 首页 > news >正文

SpringCloud学习—Hystrix:服务熔断

分布式系统面临的问题: 复杂分布式结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失效.

服务雪崩

多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“扇出”、如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应"。

对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒中内饱和。比失败更糟糕的是,这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,导致整个系统发生更多的级联故障,这些都表示需要对故障和延迟进行隔离和管理,以便单个依赖关系的失败,不能取消整个应用程序或系统。

什么是Hystrix

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时,异常等,Hystrix能够保证在一 个依赖出问题的情况下, 不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。

“断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝) , 向调用方返回-一个服务预期的,可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方法无法处理的异常,这样就可以保证了服务调用方的线程不会被长时间,不必要的占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩。
 

Hystrix作用

  • 服务降级
  • 服务熔断
  • 服务限流
  • 接近实时的监控

服务熔断

熔断机制是对应雪崩效应的一种微服务链路保护机制。
当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况, 当失败的调用到一定阈值,缺省是5秒内20次调用失败就会启动熔断机制。熔断机制的注解是@HystrixCommand.
 

http://www.lryc.cn/news/98916.html

相关文章:

  • 8款常用系统镜像烧录软件
  • 设计模式什么情况下适合使用呢?
  • Docker和K8s区别,使用场景,具体怎么使用以及详细命令
  • K8S集群创建和管理,以及常用命令
  • HarmonyOS/OpenHarmony元服务开发-卡片使用动效能力
  • 【FusionInsight HD】FusionInsight HD 651创建集群-Yarn
  • MQ, RocketMQ, 安装
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集
  • 借助 Mybatis 的动态 SQL 解决传参不确定问题
  • 前端框架学习-Vue(一)
  • Elasticsearch Query DSL
  • 腾讯云 CODING × K+ 峰会再次携手开启软件行业新风向
  • 2023年发布的25个开源大型语言模型总结
  • Istio网关Gateway 启用TLS
  • slam建图与定位_cartographer代码阅读(7)后端约束构建
  • Android usb 配件模式通信示例
  • 【Hive实战】Hive的压缩池与锁
  • 【VUE】使用elementUI tree组件根据所选id自动回显
  • RocketMQ, Dashboard, 控制台安装
  • chrome解决http自动跳转https问题
  • FastGithub 下载
  • TSINGSEE青犀视频安防监控管理平台EasyNVR如何配置鉴权?
  • unittest 数据驱动DDT应用
  • 素数个数——数论
  • express编写一个简单的get接口
  • 【力扣刷题C++】环形链表
  • 如何用Python统计CSDN质量分
  • gin框架内容(三)--中间件
  • 如何在工作中利用Prompt高效使用ChatGPT
  • uniapp-小程序button分享传参,当好友通过分享点开该页面时,进行一些判断……