Condividi tramite


Come gestire la limitazione della frequenza

La limitazione della frequenza è una tecnica comune usata dai provider di API per gestire il numero di richieste che possono essere effettuate al servizio in un periodo di tempo specifico. I provider di API usano la limitazione della frequenza per garantire che il servizio rimanga disponibile e reattivo a tutti gli utenti e per evitare abusi o uso eccessivo del servizio.

Quando si usano le API cloud nell'applicazione, è necessario comprendere i limiti di frequenza. Le tecniche seguenti consentono di gestire la limitazione della frequenza nelle applicazioni:

  • Comprendere i limiti di frequenza. Consultare la documentazione dell'API usata per comprendere i limiti di frequenza. I limiti di frequenza possono dipendere dal provider di API o dal piano di servizio usato. Ad esempio, alcune API potrebbero avere limiti di tariffa diversi per i piani gratuiti e a pagamento.
  • Usare le informazioni sulla limitazione della frequenza. Le API che usano limiti di frequenza comunicano in genere i limiti di frequenza correnti nelle intestazioni di risposta. Ad esempio, l'intestazione RateLimit-Remaining indica il numero di richieste che rimangono nella finestra corrente. Se si riceve una risposta con questa intestazione impostata su 0, si è certi di aver raggiunto il limite di velocità e di attendere la finestra successiva prima di inviare un'altra richiesta. L'intestazione RateLimit-Reset indica l'ora di reimpostazione del limite di velocità. Alcune API inviano le RateLimit-... intestazioni solo dopo aver raggiunto una soglia. Un esempio è quando ti restano 10% di richieste.
  • Ottimizzare l'utilizzo dell'API. Alcuni servizi assegnano costi diversi a richieste diverse in base alla loro complessità. Ad esempio, alcune API potrebbero addebitare più addebiti per le richieste che restituiscono più dati. Per ridurre il costo dell'applicazione, ottimizzare l'utilizzo dell'API recuperando solo i dati necessari. Usare le richieste batch se l'API le supporta. Consentono di ridurre il numero di risorse necessarie per elaborare la risposta e rimanere entro i limiti di velocità.
  • Implementare un limite di velocità locale. Implementare un limite di velocità all'interno dell'applicazione stessa per limitare il numero di richieste che possono essere effettuate all'API in un periodo di tempo specifico. È possibile farlo usando tecniche quali bucket dei token o algoritmi a goccia, che consentono all'applicazione di effettuare molte richieste per un determinato periodo di tempo. Qualsiasi altra richiesta viene accodata o eliminata.
  • Evitare di superare i limiti di velocità. Quando si superano i limiti di frequenza, l'API limita tutte le richieste successive che in genere restituiscono un codice di stato HTTP 429 Too Many Requests . In genere, la regolazione influisce sulla velocità effettiva dell'applicazione più della limitazione di velocità. Usare le informazioni esposte nelle intestazioni di risposta dei limiti di frequenza per rimanere entro i limiti di frequenza ed evitare la strozzatura.

Usando queste tecniche, è possibile compilare applicazioni resilienti alla limitazione della frequenza e continuare a funzionare anche quando l'API è sotto carico elevato.

Passo successivo