资源模型设计:
Hystrix 的资源模型设计上采用了命令模式,将对外部资源的调用和 fallback 逻辑封装成一个命令对象;
Sentinel的资源定义与规则配置的耦合度更低。开发时只需要考虑这个代码是否需要保护,至于如何保护可以实时修改。
隔离策略:
Hystrix采用了线程池隔离和信号量隔离,但是线程池隔离开销太大,信号量隔离无法对慢启动进行隔离;
Sentinel 可以通过并发线程数模式的流量控制来提供信号量隔离的功能。并且结合基于响应时间的熔断降级模式,可以在不稳定资源的平均响应时间比较高的时候自动降级,防止过多的慢调用占满并发数,影响整个系统。
熔断降级:
Hystrix基于失败率;
Sentinel基于响应时间或失败比率。
实时指标统计
Hystrix和Sentinel都是基于滑动窗口进行实时指标统计。
Sentinel
轻量级,高性能:
核心 sentinel-core 没有任何多余依赖,Sentinel提供了多种控制点,可以很方便的根据需求去进行扩展
流量控制:
直接拒绝模式
慢启动预热模式
匀速器模式
实时监控和控制面板
系统负载保护:
让系统的入口流量和系统的负载达到一个平衡,保证系统在能力范围之内处理最多的请求。