全部产品
云市场

限流降级(旧版)

更新时间:2019-09-17 19:59:34

您在 EDAS 中已部署的应用如果使用过限流降级,将继续使用旧版限流降级功能,主要包括限流管理、降级管理、入口列表和限流历史。

限流管理

每一个应用都会提供很多服务。对于这些服务,可以配置限流规则以实现对服务的流控,确保服务能够稳定运行,拒绝超出服务能力的流量。

EDAS 可以从 QPSThread(线程)两个维度对限流规则进行配置,确保系统在面对流量高峰时以最大的支撑能力平稳运行。

  • HSF 限流:出现流量高峰时,超出流控规则所定义的流量上限时,一部分调用方将出现 BlockException 错误。根据设定的阈值,在1秒内会有与设置的阈值相同个数的服务调用成功。

  • HTTP 限流:出现流量高峰时,一部分调用方将被重定向到一个出错页面,实际访问时会跳转到淘宝首页。根据阈值设定,这里也有成功访问到服务的请求。

注意:限流规则仅适用于服务提供者,对于服务消费者是不能配置的。在配置之前请先确认该应用是否为服务提供者。

添加限流规则

  1. 在您的应用中添加限流规则代码。

    1. 登录 EDAS 控制台,在左侧导航栏中选择应用管理 > 应用列表,在应用列表页面选择一个已部署的服务提供者的应用。

    2. 在应用详情页面左侧导航栏中选择限流降级 > 限流规则

    3. 限流规则页面右上角单击应用配置说明

    4. 根据应用配置说明中的步骤示例,在您的应用程序中添加限流规则代码。

  2. 编译并部署应用,具体流程请参考部署应用

  3. 在限流规则页面右上角单击添加限流规则

  4. 在添加限流规则对话框中,设置限流规则参数,然后单击确定

    edas-limit-3

    限流规则参数说明:

    • 限流类型:分为 HSF 限流HTTP/HTTPS 限流。请根据应用的访问类型,选择具体的限流类型。

    • 需要限流的接口:列出了应用中所有的接口。请根据实际情况选择需要限流的接口。

    • 需要限流的方法:针对选择的接口,自动加载接口内所有的方法。可以根据实际情况选择某个方法进行限流,也可以选择对全部方法都进行限流。

    • 被限流的应用:此时列表中将加载除当前应用以外的所有应用,因为每一个应用都可能会访问当前应用。请根据实际情况,选择被限流的应用。

    • 限流粒度:主要分为 QPS 限流Thread 限流

      • QPS 限流表示对请求中每秒请求次数的限制.
      • Thread 限流是对线程数的限制。一般来讲线程越大则 QPS 越大,但是一个线程的 QPS 一般都会 > 1,因为一个线程会持续发送请求,请求的响应时间一般为几十毫秒。
    • 限流阈值:高于阈值时将触发限流动作。

注意:在限流规则配置完成后,还可以在限流规则页面右上角单击配置 HTTP 限流跳转,配置跳转的 URL。当后续有服务请求匹配限流规则后,会跳转到配置的页面。

管理限流规则

限流规则页面,在相应的限流规则右侧的操作列中,单击编辑停用启用删除等按钮,可以对限流规则进行管理。

降级管理

每一个应用会调用许多外部服务。对于这些服务,可以配置降级规则,以实现对劣质服务的精准屏蔽,确保应用自身能够稳定运行,避免由于依赖的服务质量劣化,影响了应用自身的服务能力。

EDAS 提供了从响应时间维度对降级规则的配置,帮助您在应对流量高峰时,合理的屏蔽劣质依赖。触发降级规则的消费者,在指定的时间窗口内,不会再发起实际的远程调用,而是以抛出 DegradeException 异常替代。在时间窗口结束后,才会恢复原来的远程服务调用。

注意:降级规则仅仅适合服务消费者,对于服务提供者是不能配置的,故在配置之前请先确认是否为服务消费者。

添加降级规则

  1. 在应用中加入降级规则代码。

    1. 登录 EDAS 控制台,在左侧导航栏中选择应用管理 > 应用列表,在应用列表页面单击一个已部署的服务提供者的应用名称。

    2. 在应用详情页面左侧导航栏中,选择限流降级 > 降级规则

    3. 在降级规则页面右上角单击应用配置说明

    4. 根据应用配置说明中的步骤示例,在应用程序中添加降级规则代码。

  2. 编译并发布应用,具体请参考应用部署概述

  3. 降级规则页面右上角单击添加降级规则

  4. 添加降级规则对话框中,设置降级规则参数,然后单击确定

    降级规则

    降级规则参数说明:

    • 降级类型:包括 HSF 降级HTTP/HTTPS 降级,根据实际业务需求选择。
    • 需要降级的接口:这里将列出所有消费者正在消费的接口,根据情况,选择需要降级的接口。
    • 需要降级的方法:根据你上面选择的接口,自动加载所有的方法,可根据情况选择全部降级或降级某个方法。
    • RT 阈值:触发降级的服务响应时间的阈值,超过后,将对你选择的接口或方法进行降级处理,单位毫秒。
    • 时间窗口:触发降级后规则持续的时长。

管理降级规则

降级规则页面,在相应的降级规则右侧的操作列中,单击编辑停用启用删除等按钮,管理降级规则。

入口列表

应用中被用户或其它系统访问和调用过的 HTTP 接口、RPC 服务和 Java 方法等被统称为入口点(Entry Point),都会展示在入口列表页面。

限流降级模块拥有自动探测上述入口点的能力。用户可以根据入口列表,快速配置需要限流的入口。

入口列表根据服务类型分为入口和依赖两个页签。

  • 入口:展示当前访问该应用的入口及流量,可以对这些入口进行限流。
  • 依赖:展示当前应用对外提供的服务及流量,可以对这些服务进行限流和降级。

这两个页签下的参数是相同的。

  • 实时 QPS: 实时通过的流量和被限流的流量。
  • 近1分钟累计:近一分钟内累计通过和被限流的流量。
  • 限流状态:包括限流已启用和限流未启用。

注意:默认会加载用户默认分组中的存活实例的入口列表。如果需要查看指定实例的入口,请手动切换 IP。

添加限流规则

  1. 登录 EDAS 控制台,在左侧导航栏中单击应用管理 > 应用列表,进入应用列表页面,选择一个已部署的服务提供者的应用,进入应用详情页面。

  2. 在应用详情页面左侧导航栏中,选择限流降级 > 入口列表

  3. 限流监控页面中选择要限流的入口,然后在其操作列单击增加限流

  4. 配置规则页面设置限流规则参数。

    限流规则参数说明:

    • 需要限流的资源: 不可配置,在限流监控页面已经选择。限流规则配置完成后,该资源的 QPS 和 Thread 将会受到限制。
    • 被限流的应用: 包括全部和具体应用选项。选择全部则对所有应用进行限流,选择指定应用则只对指定应用限流。
    • 限流粒度:主要分为 QPS 限流和 Thread 限流。QPS 限流表示对请求中每秒请求次数的限制;Thread 限流是对线程数的限制。一般来讲线程越大则 QPS 越大,但是一个线程的 QPS 一般都会大于1,因为一个线程会持续发请求,请求的响应时间一般为几十毫秒。
    • 限流阈值:高于阈值时将触发限流动作。
  5. 设置完成后,单击确定

限流历史

针对近一天内应用中所有产生过限流的接口,列出它们的限流历史记录。

列表展示所有接口和 HTTP 的被限流监控历史,如果查询单个接口的历史趋势,请单击查看趋势

说明:

  • 查询趋势默认展示近半小时的限流数据。如需查询某个时间段的限流数据,请根据时间区间选择。
  • 查询的限流数据最小粒度是分钟级别,而限流本身是根据秒级计算的。如需查看秒级的限流数据,可以查看限流日志 /home/admin/logs/csp。