vlambda博客
学习文章列表

hystrix与sentinel的区别你懂没?

hystrix与sentinel的区别以及选型对比

1. hystrix具有的功能

  • 线程池隔离/信号量隔离 Sentinel 不支持线程池隔离;信号量隔离对应 Sentinel 中的线程数限流。

  • 熔断器 Sentinel 支持按平均响应时间、异常比率、异常数来进行熔断降级。

  • Command 创建 直接使用 Sentinel SphU API 定义资源即可,资源定义与规则配置分离。

  • 规则配置 在 Sentinel 中可通过 API 硬编码配置规则,也支持多种动态规则源

  • 注解支持 Sentinel 也提供注解支持

  • 开源框架支持 Sentinel 提供 Servlet、Dubbo、Spring Cloud、gRPC 的适配模块,开箱即用;若之前使用 Spring Cloud Netflix,可迁移至 Spring Cloud Alibaba

2. 功能对比:

功能

Sentinel

Hystrix

resilience4j

隔离策略

信号量隔离(并发线程数限流)

线程池隔离/信号量隔离

信号量隔离

熔断降级策略

基于响应时间、异常比率、异常数

基于异常比率

基于异常比率、响应时间

实时统计实现

滑动窗口(LeapArray)

滑动窗口(基于 RxJava)

Ring Bit Buffer

动态规则配置

支持多种数据源

支持多种数据源

有限支持

扩展性

多个扩展点

插件的形式

接口的形式

基于注解的支持

支持

支持

支持

限流

基于 QPS,支持基于调用关系的限流

有限的支持

Rate Limiter

流量整形

支持预热模式、匀速器模式、预热排队模式(流量规则处可配置)

不支持

简单的 Rate Limiter 模式

系统自适应保护

支持

不支持

不支持

控制台

提供开箱即用的控制台,可配置规则、查看秒级监控、机器发现等

简单的监控查看

不提供控制台,可对接其它监控系统