Teilen über


Resilienzempfehlungen für Azure Cosmos DB for NoSQL

Dieser Artikel enthält Empfehlungen zum Erreichen von Resilienz für Azure Cosmos DB for NoSQL. Viele der Empfehlungen enthalten unterstützende Azure Resource Graph (ARG)-Abfragen, um nicht konforme Ressourcen zu identifizieren.

Auswirkungsmatrix der Resilienzempfehlungen

Jede Empfehlung wird gemäß der folgenden Auswirkungsmatrix gekennzeichnet:

Abbildung Auswirkung BESCHREIBUNG
High Sofortige Korrektur erforderlich.
Mittel Korrektur innerhalb von 3-6 Monaten.
Niedrig Muss überprüft werden.

Zusammenfassung der Resilienzempfehlungen

Kategorie Priority Empfehlung
Verfügbarkeit Konfigurieren von mindestens zwei Regionen für Hochverfügbarkeit
Notfallwiederherstellung Aktivieren des vom Dienst verwalteten Failovers für Konten mit mehreren Regionen mit einer Schreibregion
Auswerten der Schreibfunktion für mehrere Regionen
Auswählen des geeigneten Konsistenzmodus, der die Anforderungen an die Dauerhaftigkeit der Daten widerspiegelt
Konfigurieren des Modus für fortlaufende Sicherung
Systemeffizienz Sicherstellen, dass Abfrageergebnisse vollständig geleert werden
Verwalten des Singletonmusters in Ihrem Client
Anwendungsresilienz Implementieren einer Wiederholungslogik in Ihrem Client
Überwachung Überwachen der Integrität von Cosmos DB und Einrichten von Warnungen

Verfügbarkeit

Konfigurieren von mindestens zwei Regionen für Hochverfügbarkeit

Es ist wichtig, eine sekundäre Region auf Ihrer Cosmos DB zu aktivieren, um eine höhere SLA zu erreichen. Dabei entstehen keine Ausfallzeiten, und es ist so einfach wie die Auswahl eines Pins auf der Karte. Cosmos DB-Instanzen mit starker Konsistenz müssen mindestens drei Regionen konfigurieren, um die Schreibverfügbarkeit beizubehalten, wenn ein Regionsausfall auftritt.

Mögliche Vorteile: Verbessert SLA und Resilienz.

Weitere Informationen:Zuverlässigkeit (Hohe Verfügbarkeit) in Cosmos DB für NoSQL

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
     array_length(properties.locations) < 2 or
    (array_length(properties.locations) < 3 and properties.consistencyPolicy.defaultConsistencyLevel == 'Strong')
| project recommendationId='cosmos-1', name, id, tags

Notfallwiederherstellung

Aktivieren des vom Dienst verwalteten Failovers für Konten mit mehreren Regionen mit einer Schreibregion

Cosmos DB zeichnet sich durch hohe Verfügbarkeit und Ausfallsicherheit aus. Dennoch können Probleme auftreten. Bei dienstverwaltetem Failover wechselt Cosmos DB automatisch zur nächsten verfügbaren Region, sodass keine Aktion durch die benutzende Person erforderlich ist.

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
    array_length(properties.locations) > 1 and
    tobool(properties.enableAutomaticFailover) == false and
    tobool(properties.enableMultipleWriteLocations) == false
| project recommendationId='cosmos-2', name, id, tags

Auswerten der Schreibfunktion für mehrere Regionen

Die Funktionalität zum Schreiben über mehrere Regionen hinweg ermöglicht die Entwicklung von Anwendungen, die über mehrere Regionen hinweg hochverfügbar sind, erfordert jedoch eine sorgfältige Beachtung der Konsistenzanforderungen und der Konfliktlösung. Eine mangelhafte Einrichtung kann die Verfügbarkeit einschränken und aufgrund von unbehandelten Konflikten zur Beschädigung von Daten führen.

Mögliche Vorteile: Verbessert die Hochverfügbarkeit.

Weitere Informationen:

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
    array_length(properties.locations) > 1 and
    properties.enableMultipleWriteLocations == false
| project recommendationId='cosmos-3', name, id, tags

Auswählen des geeigneten Konsistenzmodus, der die Anforderungen an die Dauerhaftigkeit der Daten widerspiegelt

In einer global verteilten Datenbank wirkt sich die Konsistenzstufe auf die Dauerhaftigkeit der Daten bei regionalen Ausfällen aus. Sie müssen die Datenverlusttoleranz für die Wiederherstellungsplanung verstehen. Verwenden Sie die Sitzungskonsistenz, wenn keine stärkere Konsistenz erforderlich ist, und nehmen Sie dabei höhere Schreiblatenzen und potenzielle Auswirkungen auf die Schreibregion durch Ausfälle von schreibgeschützten Daten in Kauf.

Mögliche Vorteile: Verbessert die Dauerhaftigkeit und Wiederherstellung von Daten.

Weitere Informationen:Konsistenzebenen in Azure Cosmos DB

Konfigurieren des Modus für fortlaufende Sicherung

Die Sicherung von Cosmos DB ist immer aktiviert und bietet Schutz vor Datenfehlern. Im Gegensatz zum periodischen Modus, bei dem der Microsoft-Support kontaktiert werden muss, was zu längeren Wiederherstellungszeiten führt, kann im fortlaufenden Modus die Wiederherstellung bis zu einem Punkt vor der Panne selbst durchgeführt werden.

Mögliche Vorteile: Schnellere Datenwiederherstellung durch Selbstbedienung.

Weitere Informationen:Fortlaufende Sicherung mit dem Feature „Zeitpunktwiederherstellung“ von Azure Cosmos DB

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
    properties.backupPolicy.type == 'Periodic' and
    properties.enableMultipleWriteLocations == false and
    properties.enableAnalyticalStorage == false
| project recommendationId='cosmos-5', name, id, tags

Systemeffizienz

Sicherstellen, dass Abfrageergebnisse vollständig geleert werden

Cosmos DB hat ein Antwortlimit von 4 MB, was bei großen oder partitionübergreifenden Abfragen zu paginierten Ergebnissen führt. Jede Seite zeigt die Verfügbarkeit an und bietet einen Fortsetzungscode für die nächste Seite. Eine „while“-Schleife im Code ist notwendig, um alle Seiten bis zum Abschluss zu durchlaufen.

Mögliche Vorteile: Maximiert die Effizienz des Datenabrufs.

Weitere Informationen:Paginierung in Azure Cosmos DB für NoSQL.

Verwalten des Singletonmusters in Ihrem Client

Die Verwendung einer einzigen Instanz des SDK-Clients für jedes Konto und jede Anwendung ist entscheidend, da die Verbindungen an den Client gebunden sind. Computeumgebungen haben ein Limit für offene Verbindungen, bei dessen Überschreitung die Konnektivität beeinträchtigt wird.

Mögliche Vorteile: Optimiert Verbindungen und Effizienz.

Weitere Informationen:Entwerfen resilienter Anwendungen mit Azure Cosmos DB SDKs.

Anwendungsresilienz

Implementieren einer Wiederholungslogik in Ihrem Client

Cosmos DB-SDKs verwalten viele vorübergehende Fehler automatisch durch Wiederholungsversuche. Trotzdem ist es für Anwendungen wichtig, zusätzliche Wiederholungsrichtlinien zu implementieren, die auf spezifische Fälle abzielen, die die SDKs nicht generisch abdecken können, um eine robustere Fehlerbehandlung zu gewährleisten.

Mögliche Vorteile: Verbessert die Resilienz bei der Fehlerbehandlung.

Weitere Informationen:Entwerfen resilienter Anwendungen mit Azure Cosmos DB SDKs.

Überwachung

Überwachen der Integrität von Cosmos DB und Einrichten von Warnungen

Die Überwachung der Verfügbarkeit und Reaktionsfähigkeit von Azure Cosmos DB-Ressourcen und die Einrichtung von Warnmeldungen für Ihren Workload sind eine gute Praxis. Dadurch wird sichergestellt, dass Sie bei der Behandlung unvorhergesehener Ereignisse proaktiv bleiben.

Mögliche Vorteile: Proaktives Problemmanagement.

Weitere Informationen:Erstellen von Warnungen für Azure Cosmos DB mithilfe von Azure Monitor