EDAS 已支持使用 AHAS 实现应用 Spring Cloud 应用、Dubbo 应用和 HSF 应用的限流降级,支持实时查看限流降级详情和动态变更规则,全面保障您的应用的可用性。

前提条件

  • 请确保您使用的是专业版铂金版的 EDAS。
  • 请确保您已开通 AHAS,详情请参见开通 AHAS
    说明 在使用 AHAS 时需要单独付费。

背景信息

ECS 集群和容器服务 Kubernetes 集群均支持使用 AHAS 实现限流降级。

  • 新部署的应用将默认使用 AHAS 组件进行限流降级。
  • 部署的已有应用如果未使用过限流降级,当您使用限流降级时,将默认使用 AHAS 进行限流降级。
  • 部署的已有应用如果已使用过限流降级,将继续使用原有的实现方式。详情请参见限流降级(旧版)

限流降级简介

  • 限流

    可以理解为是一个控制流量阈值或调节比例的功能,在前端网站面对大流量访问的时候,可以对流量进行控制,防止大流量对后端核心系统造成破坏,导致服务不可用的情况。即通过调节流量阈值来控制通过系统的最大流量值,保证系统安全可靠运行。

    通过在服务提供者端配置限流模块代码,并在 EDAS 中配置限流策略后,使服务提供者具备限流功能。此时服务消费者去调用服务提供者时,所有的访问请求都会通过限流模块进行计算,若服务消费者调用量在一定时间内超过了预设阈值,则会触发限流策略,进行限流处理。

    edas限流
  • 降级

    在 EDAS 中,降级通常用于对下游出现超时的非核心服务提供者进行低优先级调用,确保上游核心应用(服务消费者)不被影响。

    通过在服务消费者端配置降级模块代码,并在 EDAS 中配置降级策略,使服务消费者具备降级功能。此时服务消费者去调用服务提供者时,若服务提供者服务响应时间超过了预设阈值,则会触发降级策略进行降级处理。

    edas降级

操作步骤

  1. 登录 EDAS 控制台
  2. 在左侧导航栏中选择应用管理 > 应用列表 ,在应用列表页面单击具体的应用名称。
  3. 在应用详情页左侧导航栏中单击限流降级,然后在展开的菜单中单击具体的功能菜单。

    AHAS 提供的限流降级功能具体包括:

    • 监控详情:查看应用中的所有资源的数据分布、历史水位对比情况,详情请参见监控详情
    • 簇点链路:请求链路页面会展示当前应用在单个实例上的所有资源以及实时的调用数据。包含两种视图:
      • 平铺视图:不区分调用链路关系,平铺展示资源的运行情况。
      • 树状视图:根据资源的调用链路关系,展示树状结构。
      详情请参见簇点链路
    • 流控规则:监控应用流量的 QPS 或线程数等指标,当达到您指定的阈值时立即拦截流量,以避免被瞬时的流量高峰冲垮,从而保障应用的可用性。详情请参见配置流控规则
    • 降级规则:监控应用下游依赖应用的响应时间或异常比例,当达到您指定的阈值时立即降低下游依赖应用的优先级,避免应用受到影响,从而保障应用的可用性。详情请参见配置降级规则
    • 系统规则:从应用的总体 Load、RT、QPS 和线程数四个维度监控应用数据,对应用的入口流量进行控制,让应用尽可能运行在最大吞吐量的同时保证系统整体的稳定性。详情请参见配置系统规则
    • 机器列表:展示应用接入 AHAS 流控降级服务的所有实例。当一段时间没有向 AHAS 控制台发送心跳时,此实例会自动被标记为失联状态。
    • 操作日志:记录当前云账号及当前云账号创建的 RAM 用户对应用进行的操作,包括具体资源名、操作的内容、操作时间和操作人 ID 等,方便您追踪应用和资源的变更。
    • 权限管理:如子账号(即 RAM 用户)需配置和推送 AHAS 中应用的流控降级规则,您需要对子账号单独授予读写权限,从而严格管控权限,降低由于错误推送配置引发线上问题的可能性。详情请参见流控降级 RAM 授权