针对每个接口配置单位时间访问次数的上限,对访问次数已达到上限之后的接口,在统计时间段内的请求都予以拒绝,直至本统计时间段结束。
接口访问频度达到阈值时会进行告警,显示出现接口访问流量异常的接口的基本信息、异常信息等。
使用该功能需要在“配置管理 > 拦截器管理”页面中,勾选【访问频度】选项。访问频度配置只对发布到ESB Server的接口生效,如果接口发布类型是“HTTP路由”,需要在”访问安全“>”网关路由“页面中编辑对应路由添加接口调用次数插件。
如果是ESB Server集群,使用频度配置需要启用 Redis ,请启用并配置好 Redis 的 IP地址和端口等参数。
集群使用场景如下:
ESB Server1和ESB Server2 都通过 Redis 控制频度,Governor 频度配置为 10 秒钟访问 5 次,则 ESB Server1 调用 2 次后, ESB Server2 能再调用 3 次,即 ESB Server1和 ESB Server2 的调用次数之和为 5 次。如果不启用Redis 则 ESB Server1和 ESB Server2 分别可以调用 5 次。
# 新增访问频度配置
管理人员登录系统,进入管理门户,点击菜单“访问安全”>“访问配置”,打开访问配置界面,进入“访问频度配置”页签。
点击“新增”按钮,弹出新增频度配置页面。
参考参数说明表格完成访问频度配置,配置完成后点击“确定”按钮,保存访问频度配置。
参数 说明 消费方编码 选择消费方编码。 接口编码 选择接口编码。 时长 访问时长,单位(秒)。 访问次数 访问次数,单位(次)。 生效server 需要进行频度控制的ESB Server
# 编辑访问频度配置
在访问频度配置页签,选择一条需要修改的访问频度配置记录,在操作列点击“编辑”按钮,弹出编辑频度控制页面。
修改访问频度配置,修改完成后,点击“确定”保存。
# 删除访问频度配置
在访问频度配置页签,选择一条需要删除的访问频度配置记录,在操作列点击“删除”按钮,弹出“删除确认”的提示信息。
点击“确定”按钮,删除访问频度配置。
# 调用结果
- 如果访问频度在设置范围内则调用成功,客户端会显示调用结果,ESB Server 后台无输出信息。
- 如果访问频度超出设置范围则超出的调用会失败,客户端返回信息为:“调用次数超过频度阀值”,ESB Server 后台无输出信息。