微服务架构 | Hystrix的资源隔离策略该如何选择?

Hystrix是一款由Netflix开源的容错管理工具,用于处理服务间的调用失败,防止雪崩效应。本文介绍了Hystrix的两种资源隔离策略——线程池和信号量,以及它们在服务降级、服务熔断中的作用。线程池策略通过创建服务内部的线程池限制并发量,而信号量则通过限制并发请求数量来保护服务。在选择策略时,需要根据服务的特性和需求进行评估,线程池适合处理耗时操作,而信号量适用于快速响应的服务。

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

导读:Hystrix中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力。是Netlifx开源的一款容错框架,防雪崩利器,具备服务降级,服务熔断,依赖隔离,监控(Hystrix Dashboard)等功能。

一、背景

Hystrix是Netlifx开源的一款容错框架,防雪崩利器,具备服务降级,服务熔断,依赖隔离,监控(Hystrix Dashboard)等功能。

尽管说Hystrix官方已不再维护,且有Alibaba Sentinel等新框架选择,但从组件成熟度和应用案例等方面看,其实还是有很多项目在继续使用Hystrix中。

二、隔离策略

Hystrix的资源隔离策略有两种,分别为:线程池和信号量。说到资源隔离,那我们就要明白,我们为什么需要资源隔离?

在一个分布式系统中,服务之间都是相互调用的,如下图所示:

图片

例如,我们容器(Tomcat)配置的线程个数为1000,服务A-服务I。

其中服务F的并发量非常的大,需要500个线程来执行,此时,服务I又挂了,那么这500个线程很可能就夯死了,那么剩下的服务,总共可用的线程为500个,随着并发量的增大,剩余服务挂掉的风险就会越来越大,最后导致整个系统的所有服务都不可用,直到系统宕机。这就是服务的雪崩效应

Hystrix就是用来做资源隔离的,比如说,当客户端向服务端发送请求时,给服务I分配了10个线程,只要超过了这个并发量就走降级服务,就算服务I挂了,最多也就导致服务I

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值