Hystrix 介绍

Hystrix [hɪst’rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力。SpringCloud Hystrix是Netflix开源的一款容错框架,具备服务降级,服务熔断,依赖隔离,监控(Hystrix Dashboard)等功能,同样具有自我保护能力。为了实现容错和自我保护

服务雪崩

分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应。

一个服务失败,导致整条链路的服务都失败的情形,我们称之为服务雪崩

服务降级

一般是从整体负荷考虑。就是当某个服务熔断之后,服务器将不再被调用,此时客户端可以自己准备一个本地的fallback回调,返回一个缺省值。这样做,虽然会出现局部的错误,但可以避免因为一个服务挂机,而影响到整个架构的稳定性。

​通过服务降级,能保证在某个或某些服务出问题的时间,不会导致整个项目出现问题,避免级联故障,从而来提高分布式系统的弹性。

服务熔断

Hystrix意为“断路器”,就和我们生活中的保险丝,开关一个道理。

当我们给整个服务配置了服务降级后,如果服务提供者发生了错误后,就会调用降级后的方法来保证程序的运行。但是呢?有一个问题,调用者并不知道它调用的这个服务出错了,就会在业务发生的时候一直调用,然后服务会一直报错,然后去调用降级方法。好比下图中:

Hystrix入门案例

添加如下依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

启动类上添加注解

@EnableHystrix

使用feign请求数据 ,加上注解@HystrixCommand(fallbackMethod="fallback")

fallback是方法 在方法中保持传参和返回值相同。

服务报错降级

// http://localhost:7001/consumer/test
@HystrixCommand(fallbackMethod = "fallback")
@GetMapping("/test")
public String testFeign(String str) throws Exception {if ("y".equalsIgnoreCase(str)) {throw new Exception();}return providerService.provider(str);
}public String fallback(String str) {return "服务繁忙,请稍后重试!";
}

服务超时降级

// http://localhost:7001/consumer/timeout
@HystrixCommand(fallbackMethod = "timeout",commandProperties = {@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "3000")
})
@GetMapping("/timeout")
public String testTimeout(String str) throws Exception {Thread.sleep(5000);return providerService.provider(str);
}public String timeout(String str) {return "请求时间超时";
}

Spring Cloud Hystrix介绍相关推荐

  1. Spring Cloud Hystrix理解与实践(一):搭建简单监控集群

    前言 在分布式架构中,所谓的断路器模式是指当某个服务发生故障之后,通过断路器的故障监控,向调用方返回一个错误响应,这样就不会使得线程因调用故障服务被长时间占用不释放,避免故障的继续蔓延.Spring ...

  2. Spring Cloud Gateway介绍(二)

    Spring Cloud Gateway介绍(一) 全局Filters GlobalFilter与GatewayFilter具有一样的接口. 这些全局过滤器都有对应的配置类,例如: org.sprin ...

  3. 《springcloud超级入门》Spring Cloud是什么?Spring Cloud版本介绍《二》

    Spring cloud是一系列框架的有序集合.它利用 Spring Boot 的开发便利性,巧妙地简化了分布式系统基础设施的开发,如服务注册.服务发现.配置中心.消息总线.负载均衡.断路器.数据监控 ...

  4. 1:微服务和Spring Cloud Alibaba介绍

    Spring Cloud Alibaba系列目录 提示:这里是第一章:微服务和Spring Cloud Alibaba介绍 微服务和Spring Cloud Alibaba介绍 Alibaba微服务组 ...

  5. SpringCloud-19-Spring Cloud Hystrix介绍和服务端降级

    8 Hystrix:Spring Cloud服务熔断与降级组件 8.1 分布式系统面临的问题 复杂分布式体系结构中的应用程序往往由多个服务组成,这些服务之间相互依赖,依赖关系错综复杂,每个依赖关系在某 ...

  6. Spring Cloud Hystrix 源码系列:工作原理

    Hystrix 译为 "豪猪",豪猪的棘刺能保护自己不受天敌伤害,代表了强大的防御能力.Hystrix 基于 RxJava 进行实现,RxJava 是一种基于观察者模式的响应式编程 ...

  7. 一、微服务和Spring Cloud Alibaba介绍

    微服务和Spring Cloud Alibaba介绍 1.微服务介绍 1.1 系统架构演变 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化. 从互联网早起到现在,系 ...

  8. 【云原生】Spring Cloud是什么?Spring Cloud版本介绍

    什么是SpringCloud 上一章节介绍了总体的SpringCloud的总体学习章节,因为最近项目刚好需要用到SpringCloud来搭建微服务项目.所以就跟着大家一起来再学习巩固下SpringCl ...

  9. Spring Cloud 学习笔记(四)-Spring Cloud Hystrix

    Spring Cloud 学习笔记(四)-Spring Cloud Hystrix 由于前一阵子项目的原因,今天才继续弄上,今天想学习一下Hystrix组件 这个组件还挺抽象的,最开始我一直没太明白, ...

最新文章

  1. Go 分布式学习利器(19)-- Go并发编程 之 CSP(communicating sequential processes) 机制
  2. 间谍新高度:航空航天探测器被当作间谍武器
  3. 电脑一复制粘贴就卡死_油门突然卡死,踩刹车根本没用该怎么办?看看老司机怎么说...
  4. Support for the experimental syntax 'dynamicImport' isn't currently enabled
  5. 插件式架构设计实践:插件式系统架构设计简介
  6. 次世代游戏设计的相关介绍
  7. 简单的学习一下node吧——还在学习中~~~
  8. 开源框架_Index
  9. FISCO BCOS log日志设置配置
  10. 【图像增强】基于matlab GUI暗通道图像去雾【含Matlab源码 740期】
  11. 两台redhat7虚拟机配置ssh免密访问
  12. 幅频特性曲线protues_短学期--功率放大器电路图设计及Proteus仿真
  13. SONY α系列(A6000A7)数码微单相机APP破解免付费安装教程
  14. python个人简历爬取_python爬取简历模板
  15. 07-11-Exchange Server 2019-配置-Outlook 2019-IMAP4
  16. matlab画基因表达热图,科学网—使用pheatmap软件绘制基因表达热图 - 陈振玺的博文...
  17. Android OCR数字识别
  18. 任正非最新签发:鼓励来华为“胡说八道”
  19. 彗星mysql_为什么彗星被认为是一个“脏雪球”?
  20. Chrome源码剖析、上--多线程模型、进程通信、进程模型

热门文章

  1. 用C语言编辑得到的利息,存款利息的计算 有1000元,想存5年,可按以下5种办法存:...
  2. 学习记录:计算机网络基础知识总结
  3. 能吃的东西还有多少!!!!
  4. 从玩法、叙事、主题三个角度浅要谈谈《死亡搁浅》的好与坏
  5. 【B端·BI系统实战分析】BI系统概述
  6. 中国土地市场网爬虫案例
  7. Java bin 目录下的小工具使用与学习
  8. log4jdbc-log4j2浅析(sqlfx客户端采集日志的来源)-java 输出sql执行时间
  9. matlab角点检测fast_AGAST角点检测算法:比FAST和FAST-ER更快
  10. 阿特拉斯拧紧枪说明书_ATLAS 阿特拉斯 DS手枪式电动拧紧枪