如果每次发送的 API 请求太多,则会影响系统的性能。您可以启用速率限制,这会对每个用户发送的 API 请求数施加限制。
SASE Orchestrator 使用特定的防护机制以防范 API 滥用,并将系统保持稳定。将阻止超过允许的请求限制的 API 请求,并返回 HTTP 429(请求太多)。再次发出请求之前,系统需要经历一个冷却期。
将在
SASE Orchestrator 上部署以下类型的速率限制器:
- 漏斗限制器 - 平滑处理请求突发,并仅允许预定义数量的请求。该限制器负责限制在给定时间段内允许的请求数。
- 并发限制器 - 限制并行发出的请求数,并发请求将导致资源争用,并且可能会导致查询长时间运行。
以下是导致限制 API 请求速率的主要原因:
- 大量活动或并发请求。
- 请求数量突然激增。
- 丢弃了导致在 Orchestrator 上长时间运行查询(从而长时间占用系统资源)的请求。
如果启用了 VCO 速率限制功能,依赖于 API 的开发人员可以采取以下措施以提高代码稳定性。
- 在请求超过速率限制时,处理 HTTP 429 响应代码。
- 在速率限制器达到给定时间段内允许的最大请求数时,惩罚时间为 5000 毫秒。如果已阻止,再次发出请求之前,客户端需要经历 5000 毫秒的冷却期。在 5000 毫秒的冷却期内发出的请求仍会受到速率限制。
- 对于不会由于长时间运行的查询而让请求过期的时间序列 API,请使用较短的时间间隔。
- 对于查询各个客户或 Edge 的请求,请尽可能首选批量查询方法。
注: 操作员超级用户根据环境单独配置速率限制。如果对相关策略有任何疑问,请与您的操作员联系。
使用系统属性配置速率限制策略
您可以使用以下系统属性启用速率限制,并定义默认的策略集:
- vco.api.rateLimit.enabled
- vco.api.rateLimit.mode.logOnly
- vco.api.rateLimit.rules.global
- vco.api.rateLimit.rules.enterprise.default
- vco.api.rateLimit.rules.enterpriseProxy.default
有关系统属性的更多信息,请参阅系统属性列表。
使用 API 配置速率限制策略
建议使用系统属性将速率限制器策略配置为全局规则,因为这种方法可以获得最佳的 API 性能,便于进行故障排除,并确保所有合作伙伴和客户具有一致的用户体验。但在极少数情况下,操作员可能会发现全局策略对于特定租户或用户过于宽松。对于这些情况,
VMware 支持以下仅操作员 API,以便为特定的合作伙伴和企业设置策略。
- enterpriseProxy/insertOrUpdateEnterpriseProxyRateLimits - 用于配置合作伙伴特定的策略。
- enterprise/insertOrUpdateEnterpriseRateLimits - 用于配置客户特定的策略。
有关这些 API 的更多信息,请参阅 https://code.vmware.com/apis/1037/velocloud-sdwan-vco-api。