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
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:
- Globales Verteilen Ihrer Daten mit Azure Cosmos DB
- Konflikttypen und Konfliktauflösungsrichtlinien bei Verwendung mehrerer Schreibregionen
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