Spring Cloud中Hystrix实现断路器原理

博客介绍了微服务调用中的“雪崩效应”,并重点讲解了Hystrix。Hystrix是处理分布式系统延迟和容错的开源库,能避免级联故障。还阐述了服务熔断和服务降级机制,服务熔断是应对雪崩的链路保护机制,服务降级在客户端完成,同时介绍了Hystrix的请求熔断和服务降级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

1. Hystrix

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

所以叫“断路器”。“断路器”是一种开关装置,就好比我们家里的熔断保险丝,当出现突发情况,会自动跳闸,避免整个电路烧坏。当调用的服务器出现故障时,通过Hystrix,会向调用方返回一个已经处理的预期响应结果(fallback),而不是长期处于一个等待或者抛出异常。
“服务熔断”,就跟熔断保险丝一个道理。

2. 服务熔断和服务降级

服务熔断机制是应对雪崩效应的一种微服务链路保护机制。当请求的服务不可用或者请求的时长过长,就会进行服务降级,快速熔断该节点微服务的调用,返回默认的响应信息。当检测到服务调用正常的时候即立马恢复。
服务降级是在客户端完成的,不是服务端,与服务端是没有关系的。

Hystrix特性

请求熔断: 当Hystrix Command请求后端服务失败数量超过一定比例(默认50%), **断路器会切换到开路状态(Open). 这时所有请求会直接失败而不会发送到后端服务. 断路器保持在开路状态一段时间后(默认5秒), 自动切换到半开路状态(HALF-OPEN).**这时会判断下一次请求的返回情况, 如果请求成功, 断路器切回闭路状态(CLOSED), 否则重新切换到开路状态(OPEN). Hystrix的断路器就像我们家庭电路中的保险丝, 一旦后端服务不可用, 断路器会直接切断请求链, 避免发送大量无效请求影响系统吞吐量, 并且断路器有自我检测并恢复的能力.

服务降级:Fallback相当于是降级操作. 对于查询操作, 我们可以实现一个fallback方法, 当请求后端服务出现异常的时候, 可以使用fallback方法返回的值. fallback方法的返回值一般是设置的默认值或者来自缓存.告知后面的请求服务不可用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值