AHAS流量防护迁移MSE微服务治理
AHAS中流量防护模块将在微服务治理MSE中继续演进。对于使用AHAS流量防护模块的现有用户,建议将该模块迁移至MSE中继续使用。本文介绍如何将AHAS流量防护模块迁移到MSE。
MSE微服务治理介绍
MSE微服务治理中心无侵入增强主流Spring Cloud、Apache Dubbo等开源微服务框架,提供丰富的服务治理和流量防护功能,旨在帮助企业解决开发测试态、变更态以及运行态的各种稳定性和安全风险,低成本实现微服务敏捷开发,全面增强微服务线上稳定性并提升研发效率。相较于AHAS流量防护,MSE微服务治理企业版价格与AHAS流量防护价格一致,流量防护能力与AHAS基本对齐,除此之外还包含全链路灰度、无损上下线等变更时稳定性保障能力,覆盖更全面的稳定性场景。
AHAS流量防护与MSE流量防护差异
MSE流量防护大部分能力以及框架支持均与AHAS流量防护保持一致。同时也在AHAS流量防护的基础之上进行了功能的优化和精简,具体差异如下。
功能差异
分类 | 差异点 | AHAS 流量防护 | MSE 流量防护 |
核心能力 | 流量防护基础规则类型 | 主动降级规则 | 建议配置阈值为0的流控/隔离规则。 |
自动重试规则 | 实际场景下效果不佳,MSE侧不支持。 | ||
流量防护规则配置 | 流控效果支持预热启动 | 建议使用 MSE 无损上下线基于调度的预热。 | |
扩展能力 | 场景化规则 | WEB 防护规则 | 对应热点参数防护(RPC)。 |
网关防护 | 网关防护规则 | 不针对请求属性对应流控规则/并发隔离。 针对请求属性对应的热点参数防护(HTTP)。 | |
请求分组 | 实际场景下效果不佳,MSE侧不支持。 | ||
兜底防护能力 | 默认熔断规则 | 重构优化中,后续上线。 | |
系统规则 | 升级为系统防护(目前支持基于CPU使用率的自适应过载保护)。 | ||
集群流控 | 集群流控 | 应用场景下效果不佳,MSE侧不支持,推荐在网关侧(MSE 云原生网关)使用。 | |
可观测配套 | 指标监控 | 流量相关指标以及系统指标,支持回放以及历史查询 | 精简指标,保留流量相关指标以及CPU使用率,支持回放。 |
事件 | 限流事件 | 标准方式对接 MSE 统一事件中心。 | |
告警 | 系统告警以及自定义告警 | 标准方式对接云监控告警。 |
部分差异详情
请求分组
请求分组往往用于在网关侧配置接口级别的限流,但是这种方式会引入一定的性能损耗,并且在很多场景下是不适用的,不利于系统整体的稳定性,例如:
微服务架构下,不是所有流量都经过网关,后端应用的实际流量与网关侧流量并非完全一致。
网关侧的某一接口的后续链路往往会涉及多个微服务和外部依赖,对应关系难以梳理,要想达到良好的防护效果,还是需要在链路的每一层根据容量评估去配置相应的限流。
在慢调用场景下,由于各个调用环节的超时配置不一致,网关侧配置隔离等措施不能起到实际的保护效果。
出于系统整体稳定性的考虑,推荐在网关侧配置路由维度限流,应用侧配置接口维度限流,层层防护,在保障稳定性的同时减少误限以及性能损耗。
集群流控
集群流控能力适用于网关层,用于控制进入系统的总流量。推荐将网关迁移至MSE云原生网关,获得更优秀的性能表现以及更加丰富的功能,在MSE云原生网关可以配置路由级别整体阈值的限流策略。详情请参见配置限流策略。
框架差异
MSE 通过Java Agent技术实现了常用框架的无侵入埋点支持,开箱即用,支持的框架以及版本,详情可参见微服务治理支持的Java框架。与AHAS 相比,常用框架中仅 Redis 暂时不支持,后续将支持。对于不支持的框架,可以搭配开源 Sentinel SDK 使用实现灵活的自定义埋点,可参见如何在微服务治理中添加自定义接口。
迁移指引
对于应用以及规则数较少的用户可以采用先下后上的方式进行迁移,对于应用以及规则数较多的用户,推荐使用平滑迁移方案。
AHAS用户迁移MSE(先下后上)的方式,详情可参见如何将流量防护模块迁移到MSE。
AHAS用户迁移MSE(平滑迁移)根据接入方式的不同,可分为如下两种方式。
说明接入类型可在AHAS控制台的左侧导航栏的探针管理页面中选择限流降级探针进行查看。