當同時傳送的 API 要求過多時,即會影響系統的效能。您可以啟用速率限制,這會對每個使用者所傳送的 API 要求數目強制執行限制。
SASE Orchestrator 會使用特定用來防止 API 濫用及提供系統穩定性的防護機制。超過所允許要求限制的 API 要求會遭到封鎖並傳回 HTTP 429 (要求太多)。系統再次提出要求之前,需要經過冷卻期間。
下列類型的速率限制器會部署在
SASE Orchestrator 上:
- 溢位值區限制器 (Leaky bucket limiter) – 緩和要求的高載,僅允許預先定義的要求數目。此限制器負責限制在指定時間範圍內允許的要求數目。
- 並行限制器 (Concurrency limiter) – 限制並行發生的要求數目,這會導致並行要求爭用資源,且可能導致長時間執行查詢。
以下是導致 API 要求速率限制的主要原因:
- 多個作用中或並行要求。
- 要求磁碟區中突然發生尖峰。
- 導致在 Orchestrator 上長時間執行查詢的要求保留長期捨棄的系統資源。
依賴 API 的開發人員可以採用下列措施,在啟用 VCO 速率限制功能時改善其程式碼的穩定性。
- 當要求超過速率限制時,處理 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。