Sentinel 与 Hystrix、resilience4j 的对比

Hystrix

高可用架构:Hystrix作为大家熟知的容错组件,最近宣布停止开发,很多人对其背景可能了解不多。作为Spring Cloud官方默认的熔断组件,您觉得Hystrix是出于哪些原因停止开发呢?

Resilience4j

resilience4j 是一个比较轻量的熔断降级库。

首先 resilience4j 的模块化做的比较好,将每个功能点(如熔断、限速器、自动重试)都拆成了单独的模块,这样整体结构很清晰,用户也只需要引入相应功能的依赖即可;

另外resilience4j 是针对 Java 8 和函数式编程设计的,API 比较简洁优雅。

同时与 Hystrix 相比,Resilience4j 增加了简单的限速器和自动重试特性,使用场景更加丰富。Resilience4j 属于一个新兴项目,社区也在蓬勃发展。

总的来说,Resilience4j 是比较轻量的库,在较小较新的项目中使用还是比较方便的,但是 Resilience4j 只包含限流降级的基本场景,对于非常复杂的企业级服务架构可能无法很好地 cover 住;同时 Resilience4j 缺乏生产级别的配套设施(如提供规则管理和实时监控能力的控制台)

Sentinel

Sentinel 的核心思想:根据对应资源配置的规则来为资源执行相应的流控/降级/系统保护策略。在 Sentinel 中资源定义和规则配置是分离的。用户先通过 Sentinel API 给对应的业务逻辑定义资源,然后可以在需要的时候动态配置规则。

Sentinel 的优势和特性:

  • 轻量级,核心库无多余依赖,性能损耗小。
  • 方便接入,开源生态广泛。Sentinel 对 Dubbo、Spring Cloud、Web Servlet、gRPC 等常用框架提供适配模块,只需引入相应依赖并简单配置即可快速接入;同时针对自定义的场景 Sentinel 还提供低侵入性的注解资源定义方式,方便自定义接入。
  • 丰富的流量控制场景。Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,流控维度包括流控指标、流控效果(塑形)、调用关系、热点、集群等各种维度,针对系统维度也提供自适应的保护机制。
  • 易用的控制台,提供实时监控、机器发现、规则管理等能力。
  • 完善的扩展性设计,提供多样化的 SPI 接口,方便用户根据需求给 Sentinel 添加自定义的逻辑。

Sentinel 与 Hystrix、resilience4j 的对比:

image.png

你可能感兴趣的:(Sentinel 与 Hystrix、resilience4j 的对比)