AI 网关支持对API级进行添加策略和配置插件,提高API的安全性、性能和可维护性。
策略配置修改后即时生效,无需重新发布。
操作步骤
策略配置
并发控制
并发规则的原理是统计当前网关处理中的请求数之和,当指标达到设定的阈值时立即拦截流量,可配置为后端服务的最大并发处理请求数,实现在高并发下的后端服务可用性保护。
操作步骤
可在添加策略页签,单击并发控制卡片,在添加策略面板配置相关参数。
|
配置项 |
说明 |
||
|
是否开启 |
开启后,并发规则生效。 |
||
|
总体并发数阈值 |
设置总体并发数阈值。 |
||
|
Web fallback 行为 |
返回指定内容 |
Http状态码 |
设置Http状态码。默认为429。 |
|
返回 content-type |
选择返回 content-type为普通文本或JSON。 |
||
|
HTTP 返回文本 |
输入返回文本。 |
||
|
返回指定内容 |
跳转地址 |
输入跳转地址。 |
|
流量控制
流控规则的原理是监控API的QPS指标,当指标达到设定的阈值时立即拦截流量,避免后端服务被瞬时的流量高峰冲垮,从而保障高可用性。
操作步骤
可在添加策略页签,单击流量控制卡片,在添加策略面板配置相关参数。
|
配置项 |
说明 |
||
|
是否开启 |
开启后,流量控制规则生效。 |
||
|
总体QPS阈值 |
设置总体QPS阈值。 |
||
|
Web fallback 行为 |
返回指定内容 |
Http状态码 |
设置Http状态码。默认为429。 |
|
返回 content-type |
选择返回 content-type为普通文本或JSON。 |
||
|
HTTP 返回文本 |
输入返回文本。 |
||
|
跳转到指定页面 |
跳转地址 |
输入跳转地址。 |
|
熔断策略
熔断规则的原理是监控API的响应时间或异常比例,当达到指定的阈值时立即降低依赖优先级。在指定的时间内,系统不会调用该不稳定的资源,避免后端服务受到影响,从而保障后端的高可用性。当指定时间过后,再重新恢复对该资源的调用。
操作步骤
可在添加策略页签,单击熔断卡片,在添加策略面板配置相关参数。
|
配置项 |
说明 |
||
|
是否开启 |
开启后,熔断规则生效。 |
||
|
统计窗口时长 |
统计的时间窗口长度,取值范围为1秒~120分钟。 |
||
|
最小请求数目 |
触发熔断的最小请求数目,若当前统计窗口内的请求数小于此值,即使达到熔断条件规则也不会触发。 |
||
|
阈值类型 |
选择以慢调用比例(%)或异常比例(%)作为阈值。
|
||
|
慢调用RT |
设置允许的慢调用RT(即最大的响应时间)。 |
||
|
熔断比例阈值 |
触发熔断的慢调用比例阈值,取值范围 0-100(代表 0%-100%)。 |
||
|
熔断时长(s) |
即熔断触发后持续的时间。资源进入熔断状态后,在配置的熔断时长内,请求都会快速失败。 |
||
|
Web fallback 行为 |
返回指定内容 |
Http状态码 |
设置Http状态码。默认为429。 |
|
返回 content-type |
选择返回 content-type为普通文本或JSON。 |
||
|
HTTP 返回文本 |
输入返回文本。 |
||
|
跳转到指定页面 |
跳转地址 |
输入跳转地址。 |
|
IP黑白名单策略
IP 黑白名单策略的原理是通过预先配置允许或拒绝访问的 IP 地址列表,控制客户端对服务的访问权限。
操作步骤
在添加策略页签,单击IP黑白名单卡片,在添加策略面板配置相关参数。
|
参数 |
描述 |
|
开启 |
开启后,IP黑白名单策略生效。 |
|
名称 |
自定义标识名称,用于在多个策略中进行区分和管理。 |
|
备注 |
策略描述信息,便于识别和管理。 |
|
类型 |
指定为黑名单或白名单,控制访问策略类型。
|
|
IP地址/地址段 |
配置允许或拒绝访问的 IP 地址列表或地址段,支持多个条目,格式如 |
超时策略
AI 网关提供API级别的超时设置,可以按需为指定API配置网关等待请求响应结果的最大时间。如果网关在设定的时间内未收到后端服务的响应,将向客户端返回一个 HTTP 状态码为 504(Gateway Timeout)的响应结果。
操作步骤
在添加策略页签,单击超时卡片,在添加策略面板配置相关参数。
超时策略配置完成且开启后,请根据实际业务验证服务超时规则是否生效。
|
参数 |
描述 |
|
开启 |
是否开启超时策略。
|
|
超时时间 |
为当前API设置超时时间,单位为秒。 说明
当设置为0或者关闭超时策略时,表示网关会一直等待请求的响应结果。 |
重试策略
AI 网关提供API级别的重试设置,可以对出错的请求进行自动重试。根据需求配置重试条件,例如在连接失败、后端服务不可用,或者接收到指定的HTTP状态码时触发请求重试。
API的重试条件
当后端服务返回5xx错误时,AI 网关按照设置的重试次数对出错的请求自动进行重试。
-
HTTP协议的重试条件如下:
-
5xx:如果后端服务返回任何
5xx响应,或者发生连接断开、重置、读取超时事件,AI 网关将尝试对出错请求进行重试。说明5xx包含connect-failure和refused-stream的条件。 -
reset:如果发生连接断开、重置、读取超时事件,AI 网关将尝试对出错请求进行重试。
-
connect-failure:如果请求是由连接断开导致的出错,AI 网关将尝试对出错请求进行重试。
-
refused-stream:如果后端服务以
REFUSED_STREAM错误代码来重置流,AI 网关将尝试对出错请求进行重试。 -
retriable-status-codes:如果后端服务响应结果的HTTP状态码匹配上指定的重试状态码,AI 网关将尝试对该请求进行重试。
说明只有在重试条件中指定了
retriable-status-codes,才能使用重试状态码。
-
-
gRPC协议的重试条件如下:
-
cancelled:如果后端gRPC服务的响应头部中的gRPC状态码为
cancelled,AI 网关将尝试对该请求进行重试。 -
deadline-exceeded:如果后端gRPC服务的响应头部中的gRPC状态码为
deadline-exceeded,AI 网关将尝试对该请求进行重试。 -
internal:如果后端gRPC服务的响应头部中的gRPC状态码为
internal,AI 网关将尝试对该请求进行重试。 -
resource-exhausted:如果后端gRPC服务的响应头部中的gRPC状态码为
resource-exhausted,AI 网关将尝试对该请求进行重试。 -
unavailable:如果后端gRPC服务的响应头部中的gRPC状态码为
unavailable,AI 网关将尝试对该请求进行重试。
-
操作步骤
可在添加策略页签,单击重试卡片,在添加策略面板配置相关参数。
重试策略配置完成且开启后,请根据实际业务验证服务重试规则是否生效。
|
参数 |
描述 |
|
开启 |
是否开启重试策略。
|
|
重试次数 |
设置对出错请求的最大重试次数。重试次数支持设置0~10次,建议不超过2次。 重试次数设置为0,表示取消重试。 |
|
重试条件 |
选择合适的,支持多选。 |
|
重试状态码 |
对特定HTTP状态码的响应进行重试,支持配置多种HTTP状态码。 重要
重试条件指定 |
Header修改策略
在将请求转发至目标后端服务之前,或在后端服务的响应返回给客户端之前,Header设置功能允许修改原始请求中的头信息。
操作步骤
可在添加策略页签,单击Header 修改卡片,在添加策略面板配置相关参数。
|
配置项 |
说明 |
|
开启 |
是否开启Header修改策略。
|
|
Header类型 |
选择Header类型。
|
|
操作类型 |
选择操作类型。
|
|
Header Key |
输入请求或响应的头部名。 |
|
Header Value |
输入请求或响应的头部值。 |
插件配置
-
单击添加插件页签。
-
在快捷导航处,选择要安装的插件类型或者搜索插件名称,单击插件卡片:
-
如果插件未安装,在安装插件的弹出框中单击安装并配置,在启用插件的弹框中配置插件规则,并选择启用状态。
-
如果插件已安装,在启用插件的弹框中,配置插件规则,并选择启用状态。
-
-
单击确定,返回API的挂载列表,可以看到API的插件挂载情况和启用状态。
在挂载列表中,入站处理区域显示 jwt-auth(未开启)和 key-auth(已启用),出站处理区域显示 key-auth(已启用)和 jwt-auth(未开启),后端服务地址为 test.static,请求流向为前端API → 入站处理 → 后端服务 → 出站处理。