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

限流降级简介

  • 限流

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

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

    edas限流
  • 降级

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

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

    edas降级

使用须知

在使用 EDAS 限流降级功能前,您需要关注一下内容:

  • 请确保您使用的是专业版铂金版的 EDAS。
  • 请确保您已开通 AHAS,详情请参见开通 AHAS
    说明 在使用 AHAS 时需要单独付费。
  • 新部署的应用将默认使用 AHAS 组件进行限流降级。
  • 部署的已有应用如果未使用过限流降级,当您使用限流降级时,将默认使用 AHAS 进行限流降级。
  • 部署的已有应用如果已使用过限流降级,将继续使用原有的实现方式。详情请参见限流降级(旧版)

功能概述

限流降级功能具体包括:

  • 请求链路:请求链路页面会展示当前应用在单个实例上的所有资源以及实时的调用数据。包含两种视图:
    • 平铺视图:不区分调用链路关系,平铺展示资源的运行情况。
    • 树状视图:根据资源的调用链路关系,展示树状结构。
    详情请参见查看请求链路
  • 流控规则:监控应用流量的 QPS 或线程数等指标,当达到您指定的阈值时立即拦截流量,以避免被瞬时的流量高峰冲垮,从而保障应用的可用性,详情请参见配置流控规则
  • 隔离规则:监控强依赖的应用或服务的线程数,当应用或服务的并发数超过阈值时,EDAS 将拒绝多余的请求,直到堆积的线程处理完成,达到信号量隔离的效果,详情请参见配置隔离规则
  • 降级规则:监控应用下游依赖应用的响应时间或异常比例,当达到您指定的阈值时立即降低下游依赖应用的优先级,避免应用受到影响,从而保障应用的可用性,详情请参见配置降级规则
  • 系统规则:从应用的总体 Load、RT、QPS 和线程数四个维度监控应用数据,对应用的入口流量进行控制,让应用尽可能运行在最大吞吐量的同时保证系统整体的稳定性,详情请参见配置系统规则
  • 热点规则:为应用配置热点规则后,EDAS 将分析统计热点参数(资源调用过程中的调用次数较高的参数),并根据配置的热点规则对包含热点参数的资源调用进行限流,保护系统稳定性,详情请参见配置热点规则
  • 操作日志:记录当前云账号及当前云账号创建的 RAM 用户对应用进行的操作,包括具体资源名、操作的内容、操作时间和操作人 ID 等,方便您追踪应用和资源的变更,详情请参见查看限流降级操作日志
  • 权限管理:如子账号(即 RAM 用户)需配置和推送 AHAS 中应用的流控降级规则,您需要对子账号单独授予读写权限,从而严格管控权限,降低由于错误推送配置引发线上问题的可能性,详情请参见流控降级 RAM 授权