本文通过介绍性能测试 PTS 与 AHAS 流控降级产品组合的典型应用场景,帮助您了解 AHAS 流控降级功能是如何保障应用稳定性的。

背景信息

服务端的性能测试,特别是业务性能测试,目的主要是评估性能容量、诊断性能瓶颈、诊断应用错误,以及验证高可用的能力,通过针对性的优化达到降低成本、提升用户体验和系统可用性的目的。

而在评估出系统容量后,您通常需要根据系统可承载的极限,设置对应的限流阈值,以防突发的流量洪峰超出系统可承载的最大值而引发雪崩效应。AHAS 流控降级模块能够从流量控制(限流)、熔断降级、系统保护等多个维度保障服务的稳定性。

产品组合

  • 性能测试 PTS(Performance Testing Service)

    PTS 是一款简单直接的云化性能测试工具,孵化自阿里全链路压测平台。互联网化的交互适合更多的用户,PTS 能够轻松模拟大量用户访问业务的场景,随时发起所需流量,免去搭建和维护成本,具备高效、低成本、精准衡量业务的能力。

  • 应用高可用服务 AHAS(Application High Availability Service)

    AHAS 流控降级模块,由阿里巴巴内部的限流产品 Sentinel 演化升级而来,支持了天猫双 11、双 12 及年货年等大促活动,是一款面向分布式服务架构的专业流量控制组件。AHAS 流控降级主要以流量为切入点,从流量控制(限流)、熔断降级、系统保护等多个维度保障服务的稳定性,同时提供强大的聚合监控和历史监控查询功能。目前客户端支持 Java 语言。

    和常见的网关限流相比,AHAS 流控降级有以下优势:

    • 精细的防护粒度

      支持自定义接口资源,可以根据 QPS、线程、系统负载等多种指标进行限流或者降级。

    • 全方位的监控

      支持查看接口的实时、历史监控数据,以更加友好的界面展现当前资源通过的 QPS、拒绝的 QPS、RT 等信息,同时支持查看单机指定资源的监控数据。

    • 多种主流框架适配

      提供 Web servlet、Dubbo、Spring Boot/Spring Cloud、gRPC、Apache RocketMQ、Netflix Zuul 等多种框架的适配,只需要引入相应的依赖并进行少量配置即可接入。

    • 良好的性能

      客户端的性能损耗非常小。只有在单机业务量级超过 25 万 QPS 的时候才会有一些显著的影响(10% 左右),单机 QPS 不大时损耗几乎可以忽略不计,详见Sentinel 性能测试报告

适用行业

PTS 与 AHAS 共同组成的压测流控方案,不仅在阿里内部淘宝、天猫等电商领域有着广泛的应用,在互联网金融、游戏行业、直播行业和其他大型政央企行业也有着大量的实践。通过 PTS 进行系统验证,提早发现性能短板的同时,通过 AHAS 进行流量防控,进一步确保系统的稳定性。

最佳实践

下面简要介绍如何通过 PTS 和 AHAS 进行流量防控。

  1. 根据您的业务场景,通过 PTS 构建高仿真业务压测,验证系统能够支持的最大并发请求量。
  2. 压测停止后,在压测报告中可查看当前系统的最大并发请求量。

    查看最大并发请求量
  3. 假设某重要接口经过多次优化和压测后达到了业务预期的 QPS,系统机器资源也是按照该访问量配置的。如果用户请求超过该预期值,可能会导致 CPU、负载飚高,随之引发一系列问题影响正常用户访问。

    那么,我们就需要通过 AHAS 流控降级功能对该接口资源设置相应的流控规则,将限流阈值设置为期望限制的 QPS 值。

    设置流控规则
  4. 默认情况下,新建的流控或降级规则立即生效。在 AHAS 流控降级监控页面,您可以实时查看该接口资源的通过的 QPS 和拒绝的 QPS。

    查看QPS

    这样就能保证系统一直处于期望的安全水位之内,即使出现突发的流量,也不用担心资源耗尽被拖垮。

相关文档

关于 AHAS 流控降级的接入和使用,请参考开通 AHAS接入 Dubbo 应用配置流控规则