Sentinel 和 Hystrix 都是微服务架构中用于熔断降级和流量控制的优秀组件,但由于它们诞生的背景和设计理念不同,两者在功能、性能和使用场景上有很大的区别。 一句话总结现状:Hystrix 已经停止维护,而 Sentinel 正在蓬勃发展,是目前国内微服务(特别是 Spring Cloud Alibaba 生态)的首选。 以下是两者的核心区别对比: 1. 核心隔离策略不同(最本质的区别) Hystrix:主打“线程池隔离” Hystrix 为每个依赖服务分配一个独立的线程池。 优点: 隔离彻底,支持排队和超时,某个服务崩溃不会影响其他服务的线程池。 缺点: 线程切换(Context Switch)带来的性能开销非常大,对 CPU 极不友好。虽然也支持信号量隔离,但功能有限。 Sentinel:主打“并发线程数 / 信号量隔离” Sentinel 不创建新的线程池,而是通过统计当前请求的并发线程数来限制流量。 优点: 非常轻量级,没有线程切换的额外开销,性能极高。 缺点: 无法像线程池那样通过强制中断(Interrupt)来处理超时,需要依赖下游调用自身的超时机制。 2....