Freigeben über


Wie man mit Ratenbegrenzung umgeht

Die Ratenbegrenzung ist eine gängige Technik, die von API-Anbietern verwendet wird, um die Anzahl der Anforderungen zu verwalten, die in einem bestimmten Zeitraum an ihren Dienst gestellt werden können. API-Anbieter verwenden eine Ratenbegrenzung, um sicherzustellen, dass ihr Dienst für alle Benutzer verfügbar und reaktionsschnell bleibt, und um Missbrauch oder übermäßige Nutzung des Dienstes zu verhindern.

Wenn Sie Cloud-APIs in Ihrer Anwendung verwenden, sollten Sie deren Ratenbegrenzungen kennen. Die folgenden Techniken können Ihnen bei der Handhabung der Ratenbegrenzung in Ihren Anwendungen helfen:

  • Verstehen Sie die Ratengrenzen. Überprüfen Sie die Dokumentation der API, die Sie verwenden, um die Ratenlimits zu verstehen. Ratenlimits können vom API-Anbieter oder dem von Ihnen verwendeten Serviceplan abhängen. Einige APIs können beispielsweise unterschiedliche Ratenlimits für kostenlose und kostenpflichtige Pläne haben.
  • Verwenden Sie Informationen zur Ratenbegrenzung. APIs, die Ratenlimits verwenden, kommunizieren in der Regel die aktuellen Ratenlimits in den Antwortheadern. Der RateLimit-Remaining Header gibt z. B. die Anzahl der Anforderungen an, die im aktuellen Fenster verbleiben. Wenn Sie eine Antwort erhalten, bei der dieser Header auf 0 gesetzt ist, wissen Sie, dass Sie das Ratenlimit erreicht haben, und sollten auf das nächste Fenster warten, bevor Sie eine weitere Anforderung senden. Der RateLimit-Reset Header gibt den Zeitpunkt an, zu dem die Ratenbegrenzung zurückgesetzt wird. Einige APIs senden die RateLimit-... Header erst, nachdem Sie einen Schwellenwert erreicht haben. Ein Beispiel ist, wenn Sie noch 10% der Anforderungen haben.
  • Optimieren Sie die API-Nutzung. Einige Dienste ordnen verschiedenen Anfragen je nach Komplexität unterschiedliche Kosten zu. Einige APIs können z. B. höhere Gebühren für Anforderungen berechnen, die mehr Daten zurückgeben. Um die Kosten Ihrer Anwendung zu senken, optimieren Sie Ihre API-Nutzung, indem Sie nur die Daten abrufen, die Sie benötigen. Verwenden Sie Batch-Anforderungen, wenn die API sie unterstützt. Sie helfen Ihnen, die Anzahl der Ressourcen zu reduzieren, die für die Verarbeitung der Antwort erforderlich sind, und die Ratengrenzen einzuhalten.
  • Implementieren Sie einen lokalen Ratenbegrenzer. Implementieren Sie einen Ratenbegrenzer in der Anwendung selbst, um die Anzahl der Anforderungen zu begrenzen, die in einem bestimmten Zeitraum an die API gesendet werden können. Sie können dies tun, indem Sie Techniken wie Token-Bucket- oder Leaky-Bucket-Algorithmen verwenden, die es der Anwendung ermöglichen, viele Anfragen pro Zeitraum zu stellen. Alle weiteren Anforderungen werden in die Warteschlange eingereiht oder verworfen.
  • Vermeiden Sie das Überschreiten von Ratengrenzen. Wenn Sie Ratenlimits überschreiten, drosselt die API alle nachfolgenden Anforderungen, die in der Regel einen HTTP-Statuscode 429 Too Many Requests zurückgeben. In der Regel wirkt sich die Drosselung stärker auf den Durchsatz Ihrer Anwendung aus als die Ratenbegrenzung. Verwenden Sie die Informationen, die in den Antwortheadern der Ratenbegrenzung verfügbar gemacht werden, um innerhalb der Ratengrenzen zu bleiben und eine Drosselung zu vermeiden.

Mithilfe dieser Techniken können Sie Anwendungen erstellen, die gegenüber Ratenbegrenzungen resilient sind und auch dann weiterhin funktionieren, wenn die API stark ausgelastet ist.

Nächster Schritt