【分布式】Hystrix 的核心概念与工作原理

熔断机制​

Hystrix 的熔断机制就像是电路中的保险丝。当某个服务的失败请求达到一定比例(例如 50%)或者在一定时间内(如 20 秒)失败请求数量超过一定阈值(如 20 个)时,熔断开关就会打开。此时,后续对该服务的请求将不再实际调用服务,而是直接返回预设的 fallback 内容,避免了无效的等待和资源浪费。经过一段时间(如 20 秒,即熔断后的休眠窗口),熔断开关会进入半开状态,尝试放行少量请求来探测服务是否恢复正常。如果这些请求成功,熔断开关将关闭,恢复正常的服务调用;如果仍然失败,开关将再次打开。​

隔离策略​

Hystrix 提供了两种隔离策略:线程池隔离和信号量隔离。线程池隔离为每个依赖服务分配独立的线程池,当某个服务出现问题导致线程池饱和时,不会影响其他服务的线程资源,从而防止故障扩散。例如,订单服务调用库存服务和支付服务,库存服务的线程池满了,不会影响支付服务的正常运行。信号量隔离则是通过限制并发请求数量来控制对服务的访问,适用于一些调用延迟较低且对资源消耗较小的场景。​

降级机制​

当熔断开关打开或者服务调用过程中出现异常时,Hystrix 会执行降级逻辑。降级逻辑通常是预先定义好的兜底方案,比如返回缓存中的数据、提供默认值或者简单的错误提示。以电商系统为例,当商品详情服务出现故障时,降级逻辑可以返回商品的基本信息(如商品名称、图片等),而不是让用户看到空白页面,尽可能保证用户体验。

相关推荐
Vahala0623-孔勇2 小时前
Redisson分布式锁源码深度解析:RedLock算法、看门狗机制,以及虚拟线程下的锁重入陷阱与解决
java·开发语言·分布式
疯癫的老码农3 小时前
【小白入门docker】创建Spring Boot Hello World应用制作Docker镜像并运行
java·spring boot·分布式·docker·微服务
没有bug.的程序员4 小时前
分布式架构初识:为什么需要分布式
java·分布式·架构·php
Vahala0623-孔勇4 小时前
分布式ID生成终极方案:从Snowflake的时钟回拨到Leaf-segment的ZK锁协调
分布式
Lansonli7 小时前
大数据Spark(六十四):Spark算子介绍
大数据·分布式·spark
居7然9 小时前
JoyAgent-JDGenie深度评测:从开箱到实战,多智能体框架的工业级答卷
分布式·自然语言处理·架构·transformer·agent
new_daimond10 小时前
Zookeeper 技术详细介绍
分布式·zookeeper·云原生
Vahala0623-孔勇10 小时前
分布式锁巅峰对决:Redis RedLock vs ZooKeeper临时节点——Redission看门狗如何破解续期困局
redis·分布式·zookeeper
问道飞鱼12 小时前
【分布式中间件】RabbitMQ 功能详解与高可靠实现指南
分布式·中间件·rabbitmq·amqp
秃头菜狗19 小时前
十一、Hadoop 三种部署模式对比表 & 组件介绍
分布式