Skip to content

Latest commit

 

History

History
16 lines (16 loc) · 1.83 KB

hystrix.md

File metadata and controls

16 lines (16 loc) · 1.83 KB

Resilience4j与Hystrix都是优秀的容错框架,它们之间有一定的对比关系: 相似点:

  • 都提供了熔断器、线程隔离、限流等功能。可以帮助我们保护依赖服务的调用。 不同点:
  • Resilience4j是轻量级的,项目结构更清晰简单,学习曲线更平滑。Hystrix的配置与原理相对复杂一些。
  • Resilience4j默认支持滑动窗口统计,有更详细的熔断状态。Hystrix的熔断窗口底层通过计数器实现。
  • Resilience4j支持配置详细的超时器,可以在超时后执行 fallback 或抛出异常。Hystrix的超时配置较简单。
  • Resilience4j支持将Metrics、Health Indicator与Dashboard关联,可以很方便的可视化监控。Hystrix也有仪表盘,但不如Resilience4j的方便集成和配置。
  • Resilience4j支持批量配置,我们可以用少量规则配置大批量实例。这点在较新版本的Hystrix也有一定支持,但配置方式不如Resilience4j优雅。
  • Resilience4j有更加丰富的注解支持,可以完全通过注解配置一个熔断器或限流器。
  • Resilience4j有更加丰富的扩展性,许多高级特性都通过自定义拦截器实现,易于理解与扩展。 所以,总体来说:
  • 如果您的系统对资源较为宽裕,希望有一套简单但功能强大的容错方案,Resilience4j会是更好的选择。
  • 如果您的系统需要一套成熟的、生态完善的容错框架并且资源较为宽裕,Resilience4j也同样是很好的选择。
  • 如果您的系统资源较为紧张,且对容错框架的原理关注较深,这时候Hystrix可能会更加适合。但其入门难度会更大一些。 两者都是极佳的选择,需要根据项目的实际情况、团队对这方面技术的熟悉度以及资源状况综合判断选用哪个框架。但总体而言,就易用性与功能完备度来说,Resilience4j会更加优秀一些。