Delen via


Aanbevelingen voor tolerantie voor Azure Cosmos DB for NoSQL

Dit artikel bevat aanbevelingen voor het bereiken van tolerantie voor Azure Cosmos DB voor NoSQL. Veel van de aanbevelingen bevatten ondersteunende ARG-query's (Azure Resource Graph) om niet-compatibele resources te identificeren.

Impactmatrix voor aanbevelingen voor tolerantie

Elke aanbeveling wordt gemarkeerd in overeenstemming met de volgende impactmatrix:

Afbeelding Impact Beschrijving
Hoog Onmiddellijke oplossing nodig.
Gemiddeld Herstel binnen 3-6 maanden.
Beperkt Moet worden gecontroleerd.

Samenvatting van aanbevelingen voor tolerantie

Categorie Prioriteit Aanbeveling
Beschikbaarheid Ten minste twee regio's configureren voor hoge beschikbaarheid
Herstel na noodgevallen Door de service beheerde failover inschakelen voor accounts met meerdere regio's met één schrijfregio
Schrijfmogelijkheid voor meerdere regio's evalueren
De juiste consistentiemodus kiezen die de vereisten voor duurzaamheid van gegevens weergeeft
Continue back-upmodus configureren
Systeemefficiëntie Zorg ervoor dat queryresultaten volledig leeg zijn
Singleton-patroon in uw client onderhouden
Toepassingstolerantie Logica voor opnieuw proberen implementeren in uw client
Bewaking Cosmos DB-status bewaken en waarschuwingen instellen

Beschikbaarheid

Ten minste twee regio's configureren voor hoge beschikbaarheid

Het is van cruciaal belang om een secundaire regio in uw Cosmos DB in te schakelen voor een hogere SLA. Als u dit doet, treedt er geen downtime op en is het net zo eenvoudig als het selecteren van een speld op de kaart. Cosmos DB-exemplaren die gebruikmaken van sterke consistentie moeten ten minste drie regio's configureren om de beschikbaarheid van schrijfbewerkingen te behouden als er één regiofout optreedt.

Mogelijke voordelen: verbetert sla en tolerantie.

Meer informatie: Betrouwbaarheid (hoge beschikbaarheid) in Cosmos DB voor geen SQL

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

Herstel na noodgeval

Door de service beheerde failover inschakelen voor accounts met meerdere regio's met één schrijfregio

Cosmos DB biedt hoge uptime en tolerantie. Toch kunnen er problemen ontstaan. Als een regio niet beschikbaar is, schakelt Cosmos DB automatisch over naar de volgende beschikbare regio, waarvoor geen gebruikersactie is vereist.

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

Schrijfmogelijkheid voor meerdere regio's evalueren

Schrijfmogelijkheden voor meerdere regio's maken het mogelijk om toepassingen te ontwerpen die maximaal beschikbaar zijn in meerdere regio's, hoewel er zorgvuldig aandacht wordt besteed aan consistentievereisten en conflictoplossing. Onjuiste installatie kan de beschikbaarheid verminderen en beschadiging van gegevens veroorzaken vanwege niet-verwerkte conflicten.

Mogelijke voordelen: verbetert hoge beschikbaarheid.

Meer informatie:

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

De juiste consistentiemodus kiezen die de vereisten voor duurzaamheid van gegevens weergeeft

In een wereldwijd gedistribueerde database heeft consistentieniveau invloed op de duurzaamheid van gegevens tijdens regionale storingen. Inzicht in gegevensverliestolerantie voor herstelplanning. Gebruik sessieconsistentie tenzij sterker nodig is, waarbij hogere schrijflatenties en mogelijke gevolgen voor schrijfregio's worden geaccepteerd als gevolg van storingen met het kenmerk Alleen-lezen.

Mogelijke voordelen: verbetert de duurzaamheid en het herstel van gegevens.

Meer informatie: Consistentieniveaus in Azure Cosmos DB

Continue back-upmodus configureren

De back-up van Cosmos DB is altijd ingeschakeld en biedt bescherming tegen gegevensfouten. Met de continue modus kunt u zelf herstel uitvoeren naar een pre-mishappunt, in tegenstelling tot de periodieke modus, waarvoor contact moet worden opgenomen met microsoft-ondersteuning, wat leidt tot langere hersteltijden.

Mogelijke voordelen: sneller zelfherstel van gegevens.

Meer informatie: Continue back-up met functie voor herstel naar een bepaald tijdstip in 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

Systeemefficiëntie

Zorg ervoor dat queryresultaten volledig leeg zijn

Cosmos DB heeft een reactielimiet van 4 MB, wat leidt tot gepagineerde resultaten voor grote of partitie-spanningsquery's. Elke pagina toont beschikbaarheid en biedt een vervolgtoken voor de volgende. Een tijdje lus in code is nodig om alle pagina's te doorlopen totdat deze is voltooid.

Mogelijke voordelen: maximaliseert de efficiëntie van het ophalen van gegevens.

Meer informatie: Paginering in Azure Cosmos DB voor geen SQL.

Singleton-patroon in uw client onderhouden

Het gebruik van één exemplaar van de SDK-client voor elk account en elke toepassing is cruciaal omdat verbindingen aan de client zijn gekoppeld. Rekenomgevingen hebben een limiet voor open verbindingen die van invloed zijn op de connectiviteit wanneer deze worden overschreden.

Mogelijke voordelen: optimaliseert verbindingen en efficiëntie.

Meer informatie: Flexibele toepassingen ontwerpen met Azure Cosmos DB SDK's.

Toepassingstolerantie

Logica voor opnieuw proberen implementeren in uw client

Cosmos DB SDK's beheren automatisch veel tijdelijke fouten via nieuwe pogingen. Ondanks dit is het van cruciaal belang dat toepassingen aanvullende beleidsregels voor opnieuw proberen implementeren die gericht zijn op specifieke gevallen die de SDK's niet algemeen kunnen aanpakken, waardoor een robuustere foutafhandeling mogelijk is.

Mogelijke voordelen: verbetert de tolerantie voor foutafhandeling.

Meer informatie: Flexibele toepassingen ontwerpen met Azure Cosmos DB SDK's.

Controleren

Cosmos DB-status bewaken en waarschuwingen instellen

Het bewaken van de beschikbaarheid en reactiesnelheid van Azure Cosmos DB-resources en het instellen van waarschuwingen voor uw workload is een goede gewoonte. Dit zorgt ervoor dat u proactief blijft bij het afhandelen van onvoorziene gebeurtenissen.

Mogelijke voordelen: proactief probleembeheer.

Meer informatie: Waarschuwingen maken voor Azure Cosmos DB met behulp van Azure Monitor