本文介绍MSE流量防护与开源Sentinel、Hystrix两个限流相关组件的对比。MSE提供了能力完善、配套齐全、开箱即用的流量防护能力。阿里巴巴中间件团队在多年的双十一大促活动中积累了丰富的流量防护经验和方法论,并将其体系化应用到MSE中,有效保障运行时系统与业务的稳定。
MSE流量防护与自建Sentinel、Hystrix对比
对比项 | MSE流量防护 | Sentinel社区版本 | Hystrix |
流控能力 | 大流量QPS流控、热点防护支持分钟、小时级别的流控。 | QPS流控、单机热点流控。 | 不支持。 |
不稳定调用防护 | 支持渐进式恢复的异常、慢调用熔断策略和并发隔离。 | 支持异常、慢调用熔断和并发隔离。 | 支持异常熔断和线程池隔离。 |
自适应系统保护 | 更灵敏的智能化控制策略。 | Load+BBR基础策略。 | 不支持。 |
离群实例摘除 | 支持离群实例摘除能力。可以检测时间窗口内应用实例的可用性,实时隔离低于成功率阈值的实例,保证服务整体调用的成功率,提升业务的稳定性。 | 不支持。 | 不支持。 |
网关防护 | 支持Java网关灵活的流量控制。云原生网关支持集群、路由级别流量控制。 | Java网关单机维度流量控制。 | 不支持。 |
实时规则配置 | 控制台实时配置,秒级生效,保障可靠性。 | 支持结合数据源。 | 支持结合数据源。 |
控制台 | 企业级高可用流量防护配套,专业的秒级接口维度指标与高可用策略/Fallback管理能力。 | 动态规则管理、监控、集群流控管理等能力需自行实现持久化逻辑。 | 功能较弱。 |
接入方式 | 通过Java 探针无侵入方式支持近20种框架,除此之外的框架可以通过开源SDK补充支持。 | SDK依赖方式接入,涉及到业务代码的修改,自行处理各种组件复杂的版本依赖关系。 | SDK依赖方式接入,涉及到业务代码的修改,自行处理各种组件复杂的版本依赖关系。 |
使用维护成本 | 无需自行维护SDK、控制台,只需关注业务即可。 | 需自行改造与维护控制台,需自行部署。 | 配套较为欠缺。 |
参考文档
关于MSE流量防护的场景与使用,请参见:流量防护。