AHAS 应用防护以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保障业务的稳定性,提供更专业稳定的流量防护手段、秒级的流量水位分布分析功能,是阿里巴巴双十一技术体系中的核心组件,同时也是开源框架 Sentinel 的商业化产品。
使用场景
AHAS 应用防护广泛用于秒杀场景、消息削峰填谷、集群流量控制、实时熔断等场景中,从多个维度保障您的业务稳定性。
在一个常见的分布式应用中,如下图所示。一个请求先通过终端到达 Gateway,再经过防火墙和网络负载均衡,其中还包括调用下游的其它服务和第三方应用,才能到达前端网络服务。AHAS 应用防护在不同的层次以流量为切面提供秒级实时的流量分析(例如在客户端层提供流量实时监控和水位诊断分析功能),帮助运维人员采取针对性的防护措施,全方位地保护应用的稳定性。
功能特性
- 秒级流量分析功能,动态规则实时推送。
- 专业多样化的防护手段:
- 入口流量控制:按照服务容量进行流量控制,常用于应用入口,例如: Gateway、前端应用、服务提供方等。
- 热点隔离:将热点和普通流量隔离出来,避免无效热点抢占正常流量的容量。
- 对依赖方隔离 / 降级:对应用和应用之间、应用内部采用隔离 / 降级手段,将不稳定的依赖的对应用的影响减至最小,从而保证应用的稳定性。
- 系统防护:AHAS 应用防护可以根据系统的能力(例如 Load、CPU 使用率等)来动态调节入口的流量,保证系统稳定性。
- 实时的单机监控能力,强大的聚合监控和历史监控查询能力。
AHAS支持的组件列表
AHAS为了简化应用的接入流程,对主流框架进行了适配。
组件 | 支持版本 | 支持该组件的Java Agent版本 | 支持该组件的SDK版本 |
---|---|---|---|
Dubbo |
Agent:2.6.x SDK:2.7.x,2.6.x |
All | All |
Web Servlet |
SDK:2.x+ Agent:3.0+ |
All | All |
Spring Boot | 1.3.x+ | All | 请参见说明 |
Spring MVC | 4.x+ | All | 请参见说明 |
Spring Cloud Gateway | 2.x | 1.5.0+ | 请参见说明 |
Zuul 1.x | 1.3.x | 1.5.0+ | 请参见说明 |
GRPC-Java | 1.13+ | 1.7.0 | 需另引入sentinel-grpc-adapter依赖 |
Jetty | 8.x+ | Servlet 3.0+ 支持:all | 通过Servlet支持 |
Tomcat | 7.x+ | Servlet 3.0+ 支持:all | 通过Servlet支持 |
WebLogic | 10.3 |
Servlet 3.0+ 支持:all Servlet 2.x支持:1.6.0+ |
通过Servlet支持 |
HttpClient 3 | 3.x+ | 待支持 | 待支持 |
HttpClient 4 | 4.x+ | 待支持 | 待支持 |
JDK HTTP | 1.7.x+ | 待支持 | 待支持 |
OKHttp | 2.x+ | 待支持 | 待支持 |
MyBatis | 3.x+ | 待支持 | 1.4.1+ |
MySQL JDBC | 5.0.x+ | 1.6.0+ | 不支持 |
Oracle JDBC | 12.x | 1.6.0+ | 不支持 |
PostgreSql JDBC | 9.4+ | 待支持 | 不支持 |
SQLServer JDBC | 6.4+ | 待支持 | 不支持 |
Redis Client(Jedis) | 待支持 | 1.7.0 | 待支持 |
MemCached | 2.8+ | 1.7.0 | 待支持 |
MongoDB | 3.7+ | 待支持 | 待支持 |
RocketMQ (callback模式) | 4.x | 1.7.0 | 需手动埋点 |
RabbitMQ | 3.7+ | 1.7.0 | 需手动埋点 |
SOFARPC | 5.x | 待支持 | 1.5.3+ |
说明
- Spring Boot/Spring Cloud Web应用只需要引入
spring-boot-starter-ahas-sentinel-client
依赖即可接入。 - Spring Cloud Gateway网关需要引入
spring-cloud-gateway-starter-ahas-sentinel
依赖;Zuul 1.x网关需要引入spring-cloud-zuul-starter-ahas-sentinel
依赖,无需引入其它依赖。