配置热点规则

为应用配置热点规则后,EDAS将分析统计热点参数(资源调用过程中的调用次数较高的参数),并根据配置的热点规则对包含热点参数的资源调用进行限流,保护系统稳定性。本文介绍如何为应用配置热点规则。

背景信息

热点即经常被访问的数据。在以下场景中需要统计某个热点数据中访问频次最高的Top K数据,并对其访问进行限制。例如:

  • 针对一段时间内最频繁购买的商品ID进行限制,防止击穿缓存压垮数据库。

  • 针对一段时间内频繁访问的用户ID进行限制,防止恶意刷单。

EDAS利用LRU策略统计最近最常访问的热点参数,结合令牌桶算法来进行参数级别的流控。

新建热点规则

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。

  3. 在左侧导航栏中选择限流降级 > 规则管理

  4. 单击热点规则页签,然后单击新增热点限流规则

  5. 新增热点限流规则对话框,配置规则信息后,单击新增

    1. 选择防护场景

      image.png

      参数

      描述

      接口名称

      要进行热点限流的接口名称,需与埋点名保持一致。

    2. 配置防护规则

      image.png

      参数

      描述

      参数位置索引

      热点参数的索引,对应SphU.entry(xxx, args)中的参数索引位置。例如SphU.entry(resourceName, EntryType.IN, 1, paramA, paramB)埋点中,paramA的参数索引是0,paramB的参数索引是1。

      统计维度

      热点参数的统计维度,包含以下两种维度:

      • 通过请求数:根据统计周期内调用次数来进行限制。

      • 并发数:根据统计周期内该参数占用最大并发资源的数量进行限制。

      统计周期时间

      统计窗口时间长度(单位为秒)。例如统计窗口时长为10秒,单机阈值为5,代表限制10秒内每个热点参数访问不超过5次。

      单机阈值

      每个热点参数的阈值。

      流控效果

      选择流控效果来处理被拦截的流量,包含以下两种处理方式:

      • 快速失败:达到阈值时立即拦截请求。该模式下需要设置缓冲请求数,即针对突发请求额外允许的请求数目。

      • 排队等待:阈值内的请求会匀速在周期内通过,多余的请求会排队等待,等待时长超过超时时间的会立即失败。

        说明

        此选项仅适用于按并发数统计的情况。

      是否开启

      打开则表示启用该规则,关闭则表示禁用该规则。

    3. 配置限流行为

      择接口类型后,单击新增行为配置Web行为或RPC行为。

      image.png

    配置成功后,新的热点限流规则出现在规则列表中。

管理规则

规则管理页面的规则列表中,您可以编辑、删除、启用、禁用、批量启用或批量禁用规则。此外,还可以针对指定参数值单独设置限流阈值。

  • 如需编辑规则,单击目标规则右侧操作列中的编辑,并按需修改规则内容。

  • 如需删除规则,单击目标规则右侧操作列中的删除,并在对话框中单击确定

  • 如需启用或禁用规则,打开或关闭目标规则右侧状态列中的开关,并在对话框中单击确定

  • 如需批量启用或禁用规则,选中要操作的一个或多个规则,单击页面底部的批量开启批量关闭,并在对话框中单击确定

  • 如需为指定参数值单独设置限流阈值,单击目标规则右侧操作列中的更多 > 添加例外项,并在热点规则例外项对话框中添加例外项。

    说明

    仅可为基本类型和字符串类型的参数添加例外规则。