Verhindern von Ratenbegrenzungsfehlern bei Azure Cosmos DB for MongoDB-Vorgängen
GILT FÜR: MongoDB
Azure Cosmos DB for MongoDB-Vorgänge können eine Ratenbegrenzung aufweisen, was zu 16500-Fehlern in Mongo-Anforderungsmetriken führt, wenn sie den Durchsatzgrenzwert (RUs) einer Sammlung überschreiten.
Aktivieren Sie die serverseitige Wiederholung (Server Side Retry, SSR), um Vorgangswiederholungen zu automatisieren. SSR wiederholt die Anforderungen für alle Sammlungen in Ihrem Konto mit kurzen Verzögerungen. Wenn ein Timeout von 60 Sekunden erreicht ist, empfängt ein Client eine Ausnahme vom Typ ExceededTimeLimit (50).
Verwenden des Azure-Portals
Melden Sie sich beim Azure-Portal an.
Navigieren Sie zu Ihrem Azure Cosmos DB for MongoDB-Konto.
Wechseln Sie im Abschnitt Einstellungen zum Bereich Features.
Wählen Sie Serverseitige Wiederholung aus.
Klicken Sie auf Aktivieren, um dieses Feature für alle Sammlungen in Ihrem Konto zu aktivieren.
Verwenden der Azure-CLI
Überprüfen Sie, ob SSR für Ihr Konto bereits aktiviert ist:
az cosmosdb show --name accountname --resource-group resourcegroupname
Aktivieren Sie SSR für alle Sammlungen in Ihrem Datenbankkonto. Es kann bis zu 15 Minuten dauern, bis diese Änderung wirksam wird.
az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
Mit dem folgenden Befehl wird die serverseitige Wiederholung für alle Sammlungen in Ihrem Datenbankkonto deaktiviert, indem
DisableRateLimitingResponses
aus der Liste der Funktionen entfernt wird. Es kann bis zu 15 Minuten dauern, bis diese Änderung wirksam wird.az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo
Häufig gestellte Fragen
Wie kann ich die Auswirkungen einer serverseitigen Wiederholung überwachen?
Sie können in Ihren Azure Cosmos DB-Ressourcenprotokollen nach Protokolleinträgen suchen, die estimatedDelayFromRateLimitingInMilliseconds enthalten.
Wirkt sich die serverseitige Wiederholung auf meine Konsistenzebene aus?
Die serverseitige Wiederholung hat keine Auswirkung auf die Konsistenz einer Anforderung. Anforderungen werden serverseitig wiederholt, wenn bei ihnen eine Ratenbegrenzung vorliegt.
Hat die serverseitige Wiederholung Auswirkungen auf Fehlertypen, die ggf. von meinem Client empfangen werden?
Nein, die serverseitige Wiederholung hat nur Auswirkungen auf Ratenbegrenzungsfehler, indem diese serverseitig wiederholt werden. Dieses Feature sorgt dafür, dass Ratenbegrenzungsfehler nicht in der Clientanwendung behandelt werden müssen. Alle anderen Fehler werden an den Client gesendet.
Nächste Schritte
Weitere Informationen zur Problembehandlung bei häufigen Fehlern finden Sie in diesem Artikel:
Versuchen Sie, die Kapazitätsplanung für eine Migration zu Azure Cosmos DB durchzuführen? Sie können Informationen zu Ihrem vorhandenen Datenbankcluster für die Kapazitätsplanung verwenden.
- Informationen zum Neuverteilen des Durchsatzes über Partitionen hinweg finden Sie unter Informationen zum Neuverteilen des Durchsatzes über Partitionen hinweg
- Wenn Sie nur die Anzahl der virtuellen Kerne und Server in Ihrem vorhandenen Datenbankcluster kennen, lesen Sie die Informationen zum Schätzen von Anforderungseinheiten mithilfe von virtuellen Kernen oder virtuellen CPUs
- Wenn Sie die typischen Anforderungsraten für Ihre aktuelle Datenbankworkload kennen, lesen Sie die Informationen zum Schätzen von Anforderungseinheiten mit dem Azure Cosmos DB-Kapazitätsplaner