L'invio di troppe richieste API contemporaneamente influisce negativamente sulle prestazioni del sistema. È possibile abilitare la limitazione della velocità, che impone un limite al numero di richieste API inviate da ciascun utente.

SD-WAN Orchestrator utilizza alcuni meccanismi di difesa che impediscono l'abuso delle API e fornisce stabilità al sistema. Le richieste API che superano i limiti consentiti vengono bloccate e restituite con l'errore HTTP 429 (troppe richieste). È necessario attendere un determinato periodo di raffreddamento del sistema prima di poter effettuare nuovamente richieste.

In SD-WAN Orchestrator sono distribuiti i seguenti tipi di funzionalità di limitazione della velocità:
  • Limitatore leaky bucket (Leaky bucket limiter): regola la quantità di richieste consentendone solo un numero predefinito. Questa funzionalità limita il numero di richieste consentite in una determinata finestra temporale.
  • Limitatore di concorrenza (Concurrency limiter): limita il numero di richieste che si verificano in parallelo e tentano di aggiudicarsi le risorse causando query con esecuzione prolungata.
Di seguito vengono elencati i motivi principali che determinano la limitazione della velocità delle richieste API:
  • Numero elevato di richieste attive o simultanee.
  • Picchi improvvisi del volume delle richieste.
  • Eliminazione delle richieste che causano query con esecuzione prolungata in Orchestrator detenendo le risorse di sistema per un periodo di tempo troppo lungo.
Gli sviluppatori che utilizzano l'API possono adottare le seguenti misure per migliorare la stabilità del codice quando è abilitata la funzionalità di limitazione della velocità di VCO.
  • Gestire il codice di risposta HTTP 429 quando le richieste superano i limiti di velocità.
  • La durata della penalità è 5000 ms quando la funzionalità di limitazione della velocità raggiunge le richieste massime consentite in un determinato periodo di tempo. Se vengono bloccati, i client devono attendere un periodo di raffreddamento di 5000 ms prima di effettuare nuovamente richieste. Alle richieste effettuate durante il periodo di raffreddamento di 5000 ms verrà comunque applicato il limite di velocità.
  • Utilizzare intervalli di tempo più brevi per le API delle serie temporali che non consentono la scadenza della richiesta a causa di query con esecuzione prolungata.
  • Quando è possibile, preferire i metodi di query in batch a quelli che eseguono query su singoli clienti o Edge.
Nota: I superuser operatore configurano i limiti di velocità in base all'ambiente. Per qualsiasi domanda sui criteri pertinenti, contattare l'operatore.

Configurare i criteri di limitazione della velocità utilizzando le proprietà di sistema

È possibile utilizzare le seguenti proprietà di sistema per abilitare la limitazione della velocità e definire il set di criteri predefinito:
  • 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

Per ulteriori informazioni sulle proprietà di sistema, vedere Elenco delle proprietà di sistema.

Configurare i criteri di limitazione della velocità utilizzando le API

È consigliabile configurare i criteri della funzionalità di limitazione della velocità come regole globali utilizzando le proprietà di sistema, perché questo approccio consente di ottenere prestazioni ottimali dell'API, facilita la risoluzione dei problemi e garantisce un'esperienza utente coerente per tutti i partner e i clienti. In rari casi, è tuttavia possibile che gli operatori stabiliscano che i criteri globali sono troppo permissivi per un determinato tenant o utente. In questi casi, VMware supporta le seguenti API che consentono ai soli operatori di impostare criteri per partner e aziende specifici.
  • enterpriseProxy/insertOrUpdateEnterpriseProxyRateLimits: utilizzata per configurare criteri specifici dei partner.
  • enterprise/insertOrUpdateEnterpriseRateLimits: utilizzata per configurare criteri specifici dei clienti.

Per ulteriori informazioni sulle API, vedere https://code.vmware.com/apis/1037/velocloud-sdwan-vco-api.