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实践