Um meine Amazon EMR-Cluster zu überwachen, führe ich Skripts aus, die API-Aufrufe ausführen. Die Skripts geben Fehler zurück, die den folgenden ähneln: „Rate überschritten (Service: Amazon ElasticMapReduce; Statuscode: 400; Fehlercode: ThrottlingException; Request-ID: e2b6191c-gkl5-269r-u735-cryyz251a837)“ Wie verhindere ich „Rate überschritten“ -Fehler?
Kurzbeschreibung
Amazon EMR drosselt API-Aufrufe, um die Systemstabilität aufrechtzuerhalten. Ausnahmen zur Drosselung treten normalerweise auf, wenn Sie in regelmäßigen Abständen Überwachungsskripten ausführen, um Cluster auf einen Parameter zu überprüfen. Hier ist ein Beispiel: Rufen Sie DescribeCluster alle 60 Sekunden auf, um zu überprüfen, ob der Cluster den Status WAITING erreicht hat. Je mehr Cluster Sie haben und je mehr Überwachungsskripte Sie ausführen, desto wahrscheinlicher ist es, dass Drosselungsfehler auftreten.
Behebung
Gehen Sie wie folgt vor, um Drosselungsfehler zu vermeiden:
- Reduzieren Sie die Häufigkeit der API-Aufrufe.
- Versetzen Sie die Intervalle der API-Aufrufe so, dass sie nicht alle gleichzeitig ausgeführt werden.
- Implementieren Sie einen exponentiellen Backoff bei API-Aufrufen.
- Erwägen Sie den Umstieg auf eine ereignisbasierte Architektur.
Um die Ursache von Drosselungsfehlern zu verstehen, verwenden Sie AWS CloudTrail, um den Ereignisverlauf zu verfolgen. CloudTrail kann dabei helfen, Ereignisdetails wie die folgenden zu identifizieren:
- Häufige API-Aufrufe
- Rate überschritten: Fehler und die zugehörigen API-Aufrufe
- Ob API-Aufrufe von Benutzern oder Automatisierung ausgelöst werden
Ähnliche Informationen
Häufige Fehler
Verwaltung und Überwachung der API-Drosselung in Ihren Workloads
So funktioniert CloudTrail