SpringCloud入门实战(七)-Hystrix入门简介

news2025/4/5 21:55:52

📝 学技术、更要掌握学习的方法,一起学习,让进步发生
👩🏻 作者:一只IT攻城狮 。
💐学习建议:1、养成习惯,学习java的任何一个技术,都可以先去官网先看看,更准确、更专业。
💐学习建议:2、然后记住每个技术最关键的特性(通常一句话或者几个字),从主线入手,由浅入深学习。
❤️ 《SpringCloud入门实战系列》解锁SpringCloud主流组件入门应用及关键特性。带你了解SpringCloud主流组件,是如何一战解决微服务诸多难题的。项目demo:源码地址

👉🏻 SpringCloud 入门实战系列不迷路 👈🏻 :

  • SpringCloud 入门实战(一)什么是SpringCloud?
  • SpringCloud 入门实战(二)-SpringCloud项目搭建
  • SpringCloud 入门实战(三)-Eureka注册中心集成
  • SpringCloud入门 实战(四)-Zookeeper、Consul注册中心集成
  • SpringCloud入门实战(五)-Ribbon负载均衡集成
  • SpringCloud入门实战(六)-OpenFeign服务调用集成
  • SpringCloud入门实战(七)-Hystrix入门简介
  • SpringCloud入门实战(七)-Hystrix服务降级
  • SpringCloud入门实战(七)-Hystrix服务熔断
  • SpringCloud入门实战(七)-Hystrix服务限流
    在这里插入图片描述

    文章目录

    • 一、Hystrix是什么
    • 二、Hystrix的用途
    • 三、Hystrix的设计原则
    • 四、Hystrix重要概念
    • 五、Hystrix实战案例
      • 1、准备项目
      • 2、服务降级
      • 3、服务熔断
      • 4、服务限流
    • 六、工作流程
      • 1、官网流程图
      • 2、流程说明
      • 3、Hystrix源码总结

一、Hystrix是什么

老规矩,官网:Hystrix官网。Hystrix关键特性:服务降级、服务熔断、服务限流。
Hystrix是一个用于处理分布式系统的延迟容错的开源库,在分布式系统用,许多依赖不可避免的会调用失败,比如超时、异常等。Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。
"断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控,向调用方返回一个符合预期的、可处理的相应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必更地占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩。

怎么样,是不是关于Hystrix是什么,怎么学官网是不是清楚明了。

另外我们关注到Hystrix也停更了,我们知道任何技术停更,也相应的有其他不停更技术的相似替代,Sentinel也要安排学起来了!

在这里插入图片描述

Tip:不管学习哪个技术,个人还是建议要学会看官网,那是最准确清楚的。

二、Hystrix的用途

为通过第三方客户端库访问(通常通过网络)的依赖关系提供保护和控制延迟和故障。

停止复杂分布式系统中的级联故障。

故障快速恢复。

尽可能后退并优雅地降级。

实现近乎实时的监控、警报和操作控制。

三、Hystrix的设计原则

防止任何单个依赖项用完所有容器(如Tomcat)用户线程。

减少负载并快速故障,而不是排队。

在可行的情况下提供回退,以保护用户免受故障的影响。

使用隔离技术(如断路器模式)来限制任何一种依赖关系的影响。

通过近乎实时的指标、监控和警报优化发现时间

通过低延迟传播配置更改和支持Hystrix大多数方面的动态属性更改来优化恢复时间,使您能够通过低延迟反馈回路进行实时操作修改。

防止在整个依赖客户端执行过程中发生故障,而不仅仅是在网络流量中。

四、Hystrix重要概念

五、Hystrix实战案例

1、准备项目

新建springcloud-hystrix工程,以单机版注册中心为例,陆续建module搭建环境。
环境搭建参考《SpringCloud入门实战系列》前几篇文章。

在这里插入图片描述

2、服务降级

服务降级:也就是假设对方系统不可用了,向调用方返回一个符合预期的,可备选的响应。比如我们常见的“服务器忙,请稍后重试!”、“系统开小差,请稍后再试!”、“您的内容飞到了外太空…”等,超时不再等待,出错有兜底方案。不用客户等待并立刻返回一个友好的提示,这就是服务降级。

更多内容参看:SpringCloud入门实战(七)-Hystrix服务降级

3、服务熔断

熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路

更多内容参看:SpringCloud入门实战(七)-Hystrix服务熔断

4、服务限流

通过线程池或者信号量判断是否已满,超出容量的请求直接降级,以达到限流的作用。

更多内容参看:SpringCloud入门实战(七)-Hystrix服务限流

六、工作流程

1、官网流程图


翻译过来就是:

2、流程说明

1)每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中.
2)执行execute()/queue做同步或异步调用.
3)当前调用是否已被缓存,是则直接返回结果,否则进入步骤 4
4)判断熔断器(circuit-breaker)是否打开,如果打开跳到步骤 8,进行降级策略,如果关闭进入步骤 5
5)判断线程池/队列/信号量是否跑满,如果跑满进入降级步骤8,否则继续后续步骤 6
6)调用HystrixCommand的run方法.运行依赖逻辑
调用是否出现异常,否:继续,是进入步骤8,
调用是否超时,否:返回调用结果,是进入步骤8

搜集5、6步骤所有的运行状态(成功, 失败, 拒绝,超时)上报给熔断器,用于统计从而判断熔断器状态
getFallback()降级逻辑.四种触发getFallback调用情况(图中步骤8的箭头来源):返回执行成功结果

3、Hystrix源码总结

  • 采用了AOP的方式来对方法进行了增强
  • 采用了大量的RxJava响应式编程,利用了Future+线程池的方法进行了大量的异步
  • 涉及到了滑动窗口的设计,来进行统计失败率(到Sentinel再仔细讲述)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/454832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图像基本运算

图像基本运算 图像算数运算: 1)图像加法 示例代码: import cv2 import numpy as np img1 cv2.imread(‘…/datas/fengjing1.png’)#(546, 820, 3) img2 cv2.imread(‘…/datas/logo.png’)#(512, 512, 3) print(img1.shape) img1resize cv2.resize(img1, (24…

4.微服务项目实战---Sentinel--服务容错

4.1 高并发带来的问题 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络 原因或者自身的原因,服务并不能保证服务的 100% 可用,如果单个服务出现问题,调用这个服务…

活动报名|X-DecoderSEEM:从开放词库的图像理解到像素分割,如何用一个模型做N个任务理解M个模态...

2023年04月27日(星期四)11:00-12:00,由智源社区主办的「智源LIVE 第39期线上活动:X-Decoder&SEEM:从开放词库的图像理解到像素分割,如何用一个模型做N个任务理解M个模态本期活动将在线举办,…

echarts 环形图占比_环形图_仪表盘

Echarts 常用各类图表模板配置 注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项; 以下代码都可以复制到 Echarts 官网,直接预览; 图标模板目录 Echarts 常用各类图表模板配置一、环形图占比二、环形…

ACT-1,才是你更想要的人工智能助手

2022年开年以来,人工智能发展迅速,Transformers 的广泛应用使得语言、代码和图像生成等领域取得了巨大进展。在这个背景下,Adept 公司推出了第一个大型模型 Action Transformer (ACT-1),构建一个能在数字世界中采取行动的模型。 该…

〖ChatGPT实践指南 - 零基础扫盲篇①〗- ChatGPT简介、应用领域 及 哪些人应该为ChatGPT 的出现感到恐惧

文章目录 ⭐ 什么是 ChatGPT⭐ OpenAI 团队⭐ 详解 ChatGPT 聊天机器人⭐ ChatGPT的应用领域⭐ 作为程序员应该为 ChatGPT 的出现感到恐惧吗 有感于最近 ChatGPT 大火的原因,我这低眉顺眼的XXX也开始来蹭热度了。没办法,这玩意儿的热度太火了&#xff0c…

华为OD机试真题(Java),字符串加解密(100%通过+复盘思路)

一、题目描述 对输入的字符串进行加解密,并输出。 加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a; 当内容是数字时则把该数字加1&#…

JAVAweb开发学习

六、MybatisPlus快速上手 数据库操作 注意!注意!注意!springboot版本选择2.7.2 1.ORM介绍(对象关系映射) 既包含存储,又包含映射。将java类映射到数据库 2.MybatisPlus介绍 ORM框架 数据库操作来啦…

MySQL: 更改(删除)表名和字段

目录 自动添加表的属性: 更改表名和字段: 更改表名: 更改字段数据类型: 修改字段名: 添加字段: 删除字段: 修改字段排列位置: ​编辑 删除表的外键约束: 删除表&…

4月20日作业

#include <iostream> #include <cstring> using namespace std; //定义类 class myString { private: char *str; int size; public: //无参构造 myString():size(32) { str new char[size]; cout << "无参构造" << endl; } //有…

低代码开发重要工具:jvs-logic(逻辑引擎)能力扩展及代码集成

逻辑引擎动态加载执行 介绍下逻辑引擎如何实现配置规则的动态加载 逻辑引擎的规则动态加载是指在逻辑引擎运行时&#xff0c;可以根据特定的条件或触发事件&#xff0c;动态地加载或卸载规则的功能。这种功能可以帮助用户根据不同的业务需求或运行环境&#xff0c;快速调整或…

用python写游戏:《外星人入侵》给游戏添加记分功能

项目需求&#xff1a; 在游戏《外星人入侵》中&#xff0c;玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船&#xff0c;还可使用空格键进行射击。游戏开始时&#xff0c;一群外星人出现在天空中&#xff0c;他们在屏幕中向下移动。玩家的任务是射…

骨传导耳机的原理是什么,推荐几款热门的骨传导耳机

骨传导耳机的出现&#xff0c;彻底改变了传统耳机的音质、佩戴方式、听音体验&#xff0c;让我们能在享受音乐的同时&#xff0c;还能听到外界环境的声音&#xff0c;在开车、骑行、跑步时佩戴也非常安全。骨传导耳机作为新兴产品&#xff0c;已经进入了快速发展的阶段。今天我…

nodejs+vue 文旅旅游公司智能管理OA系统

通过本次设计&#xff0c;让我学到了更多的知识&#xff0c;而且在设计中会有一些问题出现&#xff0c;最后通过查阅资料和在老师和同学的帮助下完成了系统的设计和开发&#xff0c;使得这次系统的开发非常的有意义。同时通过这次系统的设计也让我明白了自己在哪方面有不足&…

把ChatGPT训练成你的得力助手

在调教chatgpt时&#xff0c;我们大部分的时候都需要一个好的学术翻译官&#xff0c;但是在他成为学术翻译官之前我们有很多规定要说明&#xff0c;比如不用回答我的问题&#xff0c;不用计算公式等。我将以下命令要求集成&#xff0c;在使用的时候只需要你发给它这段话&#x…

FL Studio有中文版吗?如何下载最新V21版本

FL Studio是一款功能强大的数字音频工作站&#xff08;DAW&#xff09;&#xff0c;它广泛应用于音乐创作和音乐制作领域。在使用FL Studio时本文将详细探讨FL Studio的功能特点的重要性。 一、FL Studio是什么软件 FL Studio是由比利时软件公司Image-Line开发的音…

电脑系统错误怎么办?您可以看看这5个方法!

案例&#xff1a;电脑出现系统错误该如何解决&#xff1f; 【这几天长时间使用我的电脑&#xff0c;导致它的系统出现了错误。有没有小伙伴知道如何解决电脑系统出错的问题&#xff1f;求一个能快速解决的方法。】 电脑系统出现错误是使用电脑时难免会遇到的问题之一&#xf…

性能测试(LoadRunner)

文章目录 1. 性能测试概述2. 常见的性能指标3. 性能测试的分类4. loadRunner 工具的介绍5. 使用 VUG4.1 打开 LR 自带的 web 系统4.2 编写性能测试脚本 6. 性能测试脚本的增强6.1 事务&#xff08;lr_start/end_transaction&#xff09;6.2 集合点&#xff08;lr_rendzvous&…

SpringCloudAlibaba服务注册与配置中心——Nacos

Nacos 本专栏学习内容来自尚硅谷周阳老师的视频 有兴趣的小伙伴可以点击视频地址观看 简介 Nacos是阿里巴巴推出的服务注册和配置中心。等价于EurekaConfigBus&#xff0c;可以替代Eureka做服务注册中心&#xff0c;替代Config做服务配置中心。官方文档 安装 关于Nacos的安装…

HBase进阶——文件的合并、 MemStore Flush、StoreFile Compaction、 Region Split、高可用与预分区介绍

系列文章目录 centos7虚拟机下hbase的使用案例讲解 hbase进阶操作——读流程与写流程介绍 centos7虚拟机在集群zookeeper上面配置hbase的具体操作步骤 文章目录 系列文章目录 一、HBase的架构原理 1、StoreFile 2、MemStore 3、WAL 二、HBase的shell操作 2.1、创建表…