【流量控制系列4】Sentinel和Hystrix对比

Sentinel和hystrix对比

  • Hystrix侧重点

    • 隔离熔断为主的容错机制
  • sentinel侧重点S

    • 多样化的流量控制
    • 熔断降级
    • 系统负载保护
    • 实时监控和控制台
  • 共同特征

    • 资源类型和执行模型

sentinel的特色

1. 轻量,高性能
2. 流量控制
3. 负载保护
4. 实时监控和控制面板
5. 生态

总结

对比项 Sentinel Hystrix
隔离策略 信号量隔离 线程池隔离/信号量隔离
熔断降级策略 基于响应实践活动失败比率 基于失败比率
实时指标实现 滑动窗口 滑动窗口(基于RxJava)
规则配置 支持多种数据源 支持多种数据源
扩展性 多个扩展点 插件的形式
基于注解的支持 支持 支持
限流 基于QPS,支持基于调用关系的限流 有限的支持
流量整型 支持慢启动、匀速器模式 不支持
负载均衡保护 支持 不支持
控制台 开箱即用,可配置规则、查看秒级监控、机器发现等 不完善
常见的框架适配 Servlet,Spring Cloud,Dubbo,gRPC等 Servlet,Spring Cloud Netflix
开源否 开源 半开源

结论

从产品层面来看,sentinel提供了更为丰富的功能和控制入口。更容易实现项目级的扩展。Hystrix的功能更偏向线程、信号量的隔离,作为插件的方式集成在服务中会比较适合,更偏向包级扩展。
所以在这里建议:

  • 在单纯的流量控制需求下,建议使用sentinel
  • 在需求到线程池隔离的功能下使用Hystrix

文档索引

【流量控制系列1】引言和索引
【流量控制系列2】流量控制的基础方法和算法
【流量控制系列3】Semaphore信号量介绍
【流量控制系列4】Sentinel和Hystrix对比
【流量控制系列5】Sentinel 详细介绍
【流量控制系列6】Sentinel 详细介绍-SlotChain源码解析
【流量控制系列7】Sentinel实践