sentinel与hystrix对比

  |   0 评论   |   0 浏览

从线程模型上看sentinel使用的是tomcat/jetty/other本身的线程池。hystrix使用的是自己创建的线程池

ItemsSentinelHystrixremark
隔离策略信号量隔离(并发线程数限流)
(模拟信号量)
线程池隔离/信号量隔离Sentinel不创建线程依赖tomcat或jetty容器的线程池,
存在的问题就是运行容器的线程数量限制了sentinel设置值的上限可能设置不准。
比如tomcat线程池为10,sentinel设置100是没有意义的,
同时隔离性不好hystrix使用自己创建的线程池,隔离性会更好
熔断降级策略基于响应时间、异常比率、
异常数
基于异常比率快速失败的本质功能
实时统计实现滑动窗口(LeapArray)滑动窗口(基于 RxJava)
动态规则配置支持多种数据源支持多种数据源
扩展性多个扩展点插件的形式
基于注解的支持支持支持
限流基于 QPS,支持基于
调用关系的限流
有限的支持
(并发线程数或信号量大小)
快速失败的本质功能
流量整形支持预热模式、匀速器模式、
预热排队模式
不支持(排队)支持排队好吧
系统自适应保护支持(仅对linux生效)不支持所谓的自适应就是设置一个服务器最大允许处理量的阈值。
(有比没有强,但是要知道最大负载量是多少。)
控制台提供开箱即用的控制台,
可配置规则、
查看秒级监控、
机器发现等
简单的监控查看接近实时数据控制台是非常有竞争力的功能,
因为能集中配置限制数据更方便,
但是展示数据和实时性没有hystrix直观。
配置持久化ZooKeeper, Apollo, NacosGit/svn/本地文件Sentinel客户端采用直接链接持久化存储,
应用客户端引用了更多的依赖,
同样的存储链接可能有多个配置
动态配置支持支持hystrix可能需要手动触发,
sentinel增加了额外的端口进行配置文件控制,
应该也支持spring boot动态配置
黑白名单支持不支持个人觉得这个功能用的不是很多
springcloud集成非常高Spring boot使用hystrix会更方便
整体优势集中配置设置及监控+
更细的控制规则
漂亮的界面+
接近实时的统计结果
集中配置可能更有吸引力,
但是配置值是多少以及让谁控制依然是很头疼的事情。

运维控制可能不知道哪个应该优先哪个不优先,应该调整到多大。
什么时候更适合使用sentinel?
个人认为docker容器化部署之后sentinel可能更会发挥作用,
但是会有另外的竞品出现做选型。

原文链接https://www.cnblogs.com/zhyg/p/11474406.html


标题:sentinel与hystrix对比
作者:michael
地址:https://blog.junxworks.cn/articles/2024/03/06/1709692480326.html