全部产品

PTS 和 AHAS 共同保障应用稳定性

更新时间:2019-03-20 19:08:22

本文通过介绍性能测试 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。

    监控详情

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

相关文档