Freigeben über


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

  1. Melden Sie sich beim Azure-Portal an.

  2. Navigieren Sie zu Ihrem Azure Cosmos DB for MongoDB-Konto.

  3. Wechseln Sie im Abschnitt Einstellungen zum Bereich Features.

  4. Wählen Sie Serverseitige Wiederholung aus.

  5. Klicken Sie auf Aktivieren, um dieses Feature für alle Sammlungen in Ihrem Konto zu aktivieren.

Screenshot des Features für die serverseitige Wiederholung für Azure Cosmos DB for MongoDB

Verwenden der Azure-CLI

  1. Überprüfen Sie, ob SSR für Ihr Konto bereits aktiviert ist:

    az cosmosdb show --name accountname --resource-group resourcegroupname
    
  2. 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
    
  3. 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.