Hystrix 断路器是什么|学习笔记

简介: 快速学习 Hystrix 断路器是什么

开发者学堂课程【微服务框架 Spring Cloud 快速入门Hystrix 断路器是什么】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/614/detail/9361


Hystrix 断路器是什么

 

内容介绍

一、概述

二、Hystrix 断路器是什么

三、功能

四、官网资料

 

上节课讲解了 Feign 负载均衡Ribbon 负载均衡.,Eureka 服务注册与发现,这三个知识点在 cloud 中是比较重要的知识点。

 

一、 概述

Hystrix 断路器也叫熔断器,主要负责 Spring Cloud 中的服务熔断,服务降级的处理。它的思想类似于 Spring 中的前置通知,环绕通知。

简单而言,Hystrix 断路器是当程序出现异常或者程序长时间微服务调用不恰当,长时间没有回应,出现超时,程序应该如何做,避免调用一次服务而导致全局的系统瘫痪挂起或者死机。

1、分布式系统面临的问题

复杂分布式体系结构中的应用程序有数十个依赖关系,可能是客户调商品,商品调订单,订单调支付,支付调库存等等,每个依赖关系在某些时候将不可避免地失败。

如图,假设 APP container 是容器,User 是用户请求,它依赖于A,P,H,I,如果顺利则没有什么问题,如果 I 服务超时会出现什么情况。

即在调用时,都挤压在 I 服务中需要 I 回应,系统会持续耗着,如果一次请求甚至上万次请求都是这样,系统就会产生超时和占用紧张的情况。

image.png

2、服务雪崩

多个微服务之间调用时,假设微服务 A 调用微服务 B 和微服务C,微服务 B 和微服务 C 又调用其它的微服务,这就是所谓的“扇出”。

扇出会导致依赖的程度加深加重加宽,如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务 A 的调用就会占用越来越多的系统资源,进而引起系统崩溃,就是所谓的“雪崩效应”。类似于当电压负荷过高时,为了防止引起火灾,保险丝自身熔断切断电流,保护了电路安全运行。Hystrix 断路器保证某个节点上系统上的资源不会被全占耗光。

对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。这就是在做高可用系统高并发时所要避免的问题。

这些应用程序还可能导致服务之间的延迟增加,备份队列,线程和其他系统资源紧张,导致整个系统发生更多的级联故障。这些都表示需要对故障和延迟进行隔离和管理,以便单个依赖关系的失败,不会取消整个应用程序或系统。

 

二、 Hystrix 断路器是什么

分布式的微服务架构是一整套系统的落地式解决方案,只要是分布式就会有服务熔断的问题,不能产生服务雪崩效应。当一个服务调不通时,就放弃调用该服务或者直接返回一个正常的请求或者返回一个异常的请求。总之不能因为一个服务拖累整个系统。对于这种情况cloud 产生了一个组件:Hystrix 断路器

Hystrix 是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、程序发生异常等,比如空指针异常,数组下标越界,或者内存溢出 OOM 等等。

Hystrix 能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。

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

 

三、功能

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

 

四、官网资料

官网地址:

https://github.com/Netflix/Hystrix/wiki/How-To-Use

源码级别的都在 github 中,也可以在 wiki 百科中参考一些案例代码,比如下节课将要讲解的 HystrixCommand 

总之,Hystrix 断路器避免单个调用导致全局挂掉的熔断器,类似于熔断保险丝。

相关文章
|
Cloud Native Go 微服务
golang 微服务中的断路器 hystrix
golang 微服务中的断路器 hystrix
220 0
|
缓存 监控 Java
12SpringCloud - 断路器(Hystrix)引入
12SpringCloud - 断路器(Hystrix)引入
145 0
|
监控 微服务
Hystrix断路器执行原理
Hystrix断路器执行原理
245 0
|
Java 微服务 Spring
微服务(九)-Hystrix(断路器)
微服务(九)-Hystrix(断路器)
|
监控 Java 数据中心
通用快照方案问题之服务雪崩问题如何解决
通用快照方案问题之服务雪崩问题如何解决
187 0
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
420 1
|
监控 微服务
Hystrix熔断器设计思想(学习笔记)附(服务监控hystrixDashboard识图)
Hystrix熔断器设计思想(学习笔记)附(服务监控hystrixDashboard识图)
167 0
|
监控 负载均衡 数据可视化
SpringCloud - Hystrix断路器-服务熔断与降级和HystrixDashboard
SpringCloud - Hystrix断路器-服务熔断与降级和HystrixDashboard
219 0
|
Cloud Native 测试技术 Go
golang 微服务中的断路器 hystrix 小案例
golang 微服务中的断路器 hystrix 小案例
303 0
|
监控 Java 微服务
16SpringCloud - 断路器项目示例(Hystrix Dashboard)
16SpringCloud - 断路器项目示例(Hystrix Dashboard)
172 0