策略管理分为流控策略、访问策略、报警策略以及行级权限、熔断策略。当前支持设置API访问的黑白名单、支持设置单位时间内API的调用次数上限,且针对API绑定的应用,可授予不同应用调用次数上限,支持配置多种形式的报警策略,也支持针对调用频繁的API,为保证系统性能配置熔断策略。

说明: 对于流控、访问和报警、熔断策略,仅针对已发布的API生效,且仅发布后的API,才可在API详情页面绑定策略或策略的详情页面绑定API,未发布或下线的API不可绑定策略。

流控策略


流量控制支持限制单位时间内对API的调用次数,支持按照分/秒粒度级别的流量控制,也支持针对授权的应用设置流量控制,实现双重的流控。
策略管理 - 图1

参数信息 说明
新建策略 点击新建策略,弹窗新建,填写策略名称和单位时间内API的调用次数上限。
删除 选中策略后,可执行删除操作,只有未绑定API的策略才可删除。
筛选 支持按照时间和创建人以及策略名称进行搜索定位。
策略详情页 点击策略名称,支持跳转至策略详情页面,可查看策略基本信息以及该策略绑定API的列表。
绑定API数量 点击数值,支持进入策略详情页查看该策略绑定的API列表。
编辑 支持对已经创建的策略进行编辑操作。
绑定API 在策略详情页支持对API进行绑定,已经绑定策略的API支持更新策略。

API详情页的策略详情页面支持绑定、更新、解绑流控策略,但一个已发布的API只能绑定一个流控策略。
策略管理 - 图2

需要注意的是,限流次数与网关的实例数、nginx配置等因素也有关联,实际的限流次数约等于:向上取整(配置的API调用次数/网关实例数)*网关实例数

策略管理 - 图3

策略管理 - 图4

访问策略


访问控制负责控制API的调用来源,可以配置API的黑白名单控制API请求。界面基本功能同流量策略,在新建访问策略时,需要填写ip地址,选择黑名单还是白名单。
策略管理 - 图5
IP地址的填写支持单个IP或者IP段的格式。同样,在API详情页的策略详情页面,也支持对API绑定的访问策略进行更新,一个已发布的API只能绑定一个访问策略。
策略管理 - 图6

报警策略


在报警策略管理中,平台支持多种报警规则,包括QPS、错误率、平均响应时间、慢查询(占比)和慢查询(数量)、调用失败次数,可以选择操作符以及触发报警的阈值,支持多种通知方式,可选择多个通知人。同时在遭遇告警轰炸期间,可以开启报警抑制,设置规定时间内的最多告警次数。一个报警策略最多包含10条报警规则,可被多个API绑定。

策略管理 - 图7

参数信息 说明
QPS Query Per Second,每秒查询率,单位为次/秒
平均响应时间 API调用总时长/API调用总次数,单位为ms
错误率 API调用错误总次数/API调用总次数,单位为%
慢查询(占比) 响应时间不小于触发阈值的API调用次数/API调用总次数,单位为%,需选择响应时间阈值(ms)和填写占比阈值。
慢查询(数量) 响应时间不小于触发阈值的API调用总次数,单位为,需选择响应时间阈值(ms)和填写数量阈值。
调用失败次数 在一定时间内出现多少次调用失败则触发报警,若开启了细粒度监控,统计时间为1分钟内,调用失败次数可配置大于1分钟的时间;若数据服务未开启细粒度监控,仍使用的是粗粒度的监控,统计时间默认为5分钟,调用失败次数默认仅可配置5分钟内出现多少次调用失败。

此外,系统预置错误率的报警策略,在线上环境发布API时,默认会绑定系统预置的报警策略,当错误率>=5%时触发报警,报警接收人默认为API创建人。
策略管理 - 图8

在报警策略的详情页面,可选择处于发布状态的API进行绑定,若API已绑定报警策略,也支持更新绑定的报警策略,同样,在API详情页面,也可绑定或更新已绑定的报警策略,但一个已发布的API只能绑定一个报警策略。

熔断策略


在熔断策略管理中,平台支持错误率和慢查询(占比)的熔断类型:

  • 错误率:仅包含数据源异常和SQL异常引起的调用错误,API调用错误总次数/API调用总次数,单位为"%"

  • 慢查询(占比):响应时间不小于触发阈值的API调用次数/API调用总次数,单位为"%",需选择响应时间阈值(ms)和填写占比阈值

策略管理 - 图9

参数信息 说明
错误率 仅包含数据源异常和SQL异常引起的调用错误,API调用错误总次数/API调用总次数,单位为"%"。
慢查询(占比) 响应时间不小于触发阈值的API调用次数/API调用总次数,单位为"%",需选择响应时间阈值(ms)和填写占比阈值
单位统计时长 以单位统计时长为巡检窗口判断是否达到熔断条件,需不小于5秒
最小请求数 在单位统计时长内的最小请求阈值,若请求数低于该值,不会触发熔断
熔断时长 从发生熔断开始,该熔断时间段内将拒绝所有请求,需不小于5秒

在熔断策略的详情页面,可选择处于发布状态的API进行绑定,若API已绑定熔断策略,也支持更新绑定的熔断策略,同样,在API详情页面,也可绑定或更新已绑定的熔断策略,但一个已发布的API只能绑定一个熔断策略。

行级权限


支持控制API行级权限,从入参的角度,设置行级权限方案,整体使用流程如下:
21 数据服务18.png

新建行级权限方案,选择入参类型,支持布尔型、字符串、整型、浮点型和高精度浮点型,添加行权限值(表示可授权查看的行数据,比如city字段有上海、杭州、北京,但只允许用户获取杭州的数据,则行权限值为杭州)。
策略管理 - 图11

如果行级权限已被应用绑定,编辑行级权限时,入参参数类型不允许修改。
21 数据服务19.png

在已发布API的详情页,绑定应用,弹窗中增加是否开启行级权限的功能键。如果开启,则需要配置行级权限,针对当前API的入参(仅支持必填入参绑定行级权限方案),可选择绑定对应参数类型的权限方案,比如入参类型为字符串,则只能绑定同为字符串的行级权限方案。

若入参绑定了诸如in、between的操作符,且保证入参类型为字符串时,可通过配置行权限值传参配置功能,选择当前应用在调用API时,参数是传递单个值精准匹配,还是传递多个值。比如入参绑定了in操作符,入参类型为字符串,行权限值设置了"北京""上海""杭州",选择"单个权限值"传递,则调用时只能传递"北京"或"上海"或"杭州"单个值并精准匹配,若选择了"任意权限值的组合",则可以传递"北京","上海","杭州"或者"北京","上海"或者"上海","杭州",表示city in (北京,上海,杭州)或者city in (北京,上海)或者city in (上海,杭州)。

策略管理 - 图13

若在绑定应用的弹窗中,开启了行级权限方案,则必配置。
21 数据服务20.png

行级权限方案,相关的权限控制,包括新建、查看、编辑、删除等,统一由安全中心管理控制,详情可查看功能权限控制

应用调用策略


对于API绑定的不同应用,支持设置不同应用的调用次数上限以及调用截止时间。

在API的详情页面,对于处于已发布状态的API,支持绑定应用,在绑定应用时,可以选择应用调用截止时间以及该应用的单位时间内调用次数上限。

只有已发布的API才可以绑定应用,设置应用的调用策略。
策略管理 - 图15