为应用配置热点规则后,EDAS将分析统计热点参数(资源调用过程中的调用次数较高的参数),并根据配置的热点规则对包含热点参数的资源调用进行限流,保护系统稳定性。本文介绍如何为应用配置热点规则。
背景信息
热点即经常被访问的数据。在以下场景中需要统计某个热点数据中访问频次最高的Top K数据,并对其访问进行限制。例如:
- 针对一段时间内最频繁购买的商品ID进行限制,防止击穿缓存压垮数据库。
- 针对一段时间内频繁访问的用户ID进行限制,防止恶意刷单。
EDAS利用LRU策略统计最近最常访问的热点参数,结合令牌桶算法来进行参数级别的流控。
新建热点规则
- 登录EDAS控制台。
- 执行以下操作之一以进入应用详情页面:
- 在左侧导航栏选择,在顶部菜单栏选择地域并在页面上方选择命名空间,在集群页面的容器服务K8s集群页签上单击集群ID或名称,然后在集群详情页面的应用列表区域单击具体应用名称。
- 在左侧导航栏单击应用列表,在顶部菜单栏选择地域并在页面上方选择命名空间,在应用列表页面单击具体容器服务K8s集群应用的应用名称。
- 在左侧导航栏中选择。
- 单击热点规则页签,然后在页面右上角单击新增热点限流规则。
- 在新增热点限流规则对话框中,配置规则信息。
参数 |
描述 |
接口名称 |
要进行热点限流的接口名称,需与埋点名保持一致。 |
参数位置索引 |
热点参数的索引,对应SphU.entry(xxx, args) 中的参数索引位置。例如SphU.entry(resourceName, EntryType.IN, 1, paramA, paramB) 埋点中,paramA的参数索引是0,paramB的参数索引是1。
|
统计维度 |
热点参数的统计维度,包含以下两种维度:
- 通过请求数:根据统计周期内调用次数来进行限制。
- 并发数:根据统计周期内该参数占用最大并发资源的数量进行限制。
|
统计周期时间 |
统计窗口时间长度(单位为秒)。例如统计窗口时长为10秒,单机阈值为5,代表限制10秒内每个热点参数访问不超过5次。 |
单机阈值 |
每个热点参数的阈值。 |
流控效果 |
选择流控效果来处理被拦截的流量,包含以下两种处理方式:
- 快速失败:达到阈值时立即拦截请求。该模式下需要设置缓冲请求数,即针对突发请求额外允许的请求数目。
- 排队等待:阈值内的请求会匀速在周期内通过,多余的请求会排队等待,等待时长超过超时时间的会立即失败。
|
是否开启 |
打开则表示启用该规则,关闭则表示禁用该规则。 |
配置成功后,新的热点限流规则出现在规则列表中。
管理规则
在规则管理页面的规则列表中,您可以编辑、删除、启用、禁用、批量启用或批量禁用规则。此外,还可以针对指定参数值单独设置限流阈值。
- 如需编辑规则,单击目标规则右侧操作列中的编辑,并按需修改规则内容。
- 如需删除规则,单击目标规则右侧操作列中的删除,并在对话框中单击确定。
- 如需启用或禁用规则,打开或关闭目标规则右侧状态列中的开关,并在对话框中单击确定。
- 如需批量启用或禁用规则,选中要操作的一个或多个规则,单击页面底部的批量启用或批量禁用,并在对话框中单击确定。
- 如需为指定参数值单独设置限流阈值,单击目标规则右侧操作列中的添加例外项,并在热点规则例外项对话框中添加例外项。
说明 仅可为基本类型和字符串类型的参数添加例外规则。