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