Ich verwende AWS SDK für Javascript (Node.js), um Daten aus einer DynamoDB-Tabelle zu lesen. Die automatische Skalierungsfunktion macht während der meisten Zeit eine gute Arbeit und die verbrauchten Read Capacity Units (RCU) sind wirklich den geringsten Teil des Tages. Es gibt jedoch einen programmierten Job, der um Mitternacht ausgeführt wird, was etwa das 10-fache der bereitgestellten RCU erfordert, und da die automatische Skalierung einige Zeit benötigt, um die Kapazität anzupassen, gibt es viele gedrosselte Leseanforderungen. Außerdem vermute ich, dass meine Anfragen nicht abgeschlossen werden (obwohl ich in meinem Fehlerprotokoll keine Ausnahmen finden kann).Was ist zu tun, wenn der bereitgestellte Durchsatz überschritten wird?
Um diese Situation zu behandeln, habe ich erwogen, die bereitgestellte RCU mithilfe der AWS-API (updateTable) zu erhöhen, aber die Berechnung der Anzahl der RCU, die meine Anwendungen benötigen, ist möglicherweise nicht einfach.
Also meine zweite Schätzung war, fehlgeschlagene Anfragen zu wiederholen und warten Sie einfach auf automatische Skalierung erhöhen Sie die bereitgestellten RCU. Wie von AWS-Dokumentation und einige Stack-Überlauf Antworten darauf hingewiesen (particularlly über ProvisionedThroughputExceededException):
Die AWS SDKs für Amazon DynamoDB automatisch Anfragen wiederholen, die diese Ausnahme erhalten. Daher ist Ihre Anforderung letztendlich erfolgreich, es sei denn, die Anforderung ist zu groß oder die Wiederholungswarteschlange ist zu groß, um sie zu beenden.
Ich habe ähnliche Fragen gelesen (this one, this one und this one), aber ich bin immer noch verwirrt: Diese Ausnahme wird ausgelöst, wenn die Anforderung zu groß ist oder die Wiederholungswarteschlange zu groß zu beenden (also nach dem automatischen Wiederholungen) oder tatsächlich vor den Wiederholungen?
Am wichtigsten: ist das die Ausnahme, die ich in meinem Kontext erwarten sollte? (So kann ich es abfangen und es erneut versuchen, bis die automatische Skalierung die RCU erhöht?)