Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: NoSQL
Den här guiden innehåller metodtips för lösningar som skapats med den senaste versionen av JavaScript SDK för Azure Cosmos DB för NoSQL. De bästa metoderna som ingår här hjälper till att förbättra svarstiden, förbättra tillgängligheten och öka den övergripande prestandan för dina lösningar.
Kontokonfiguration
- Se till att köra ditt program i samma Azure-region som ditt Azure Cosmos DB-konto när det är möjligt för att minska svarstiden. Aktivera 2–4 regioner och replikera dina konton i flera regioner för bästa tillgänglighet. Aktivera tjänsthanterad redundans för produktionsarbetsbelastningar. I avsaknad av den här konfigurationen upplever kontot förlust av skrivtillgänglighet under hela avbrottstiden för skrivregionen, eftersom manuell redundans inte kan lyckas på grund av bristande regionanslutning. Mer information om hur du lägger till flera regioner med hjälp av JavaScript SDK finns i den globala distributionsguiden.
SDK-användning
- Använd alltid den senaste versionen av Azure Cosmos DB SDK som är tillgänglig för optimala prestanda.
- Använd en enda instans av
CosmosClient
under programmets livslängd för bättre prestanda. - Ange preferredRegions i SDK med hjälp av ConnectionPolicy. Vid felövergångar skickas skrivåtgärder till den aktuella skrivregionen och alla läsningar skickas till den första regionen i listan över önskade regioner. Mer information om regional redundansmekanik finns i tillgänglighetsfelsökning.
- Ett tillfälligt fel är ett fel som har en underliggande orsak som snart löser sig själv. Program som ansluts till databasen bör anpassas för att klara av dessa tillfälliga fel. För att hantera dem implementerar du logik för återförsök i koden i stället för att visa dem för användare som programfel. SDK:n har inbyggd logik för att hantera dessa tillfälliga fel vid återförsöksbara begäranden som läs- eller frågeåtgärder. SDK:t kan inte försöka igen vid skrivningar för tillfälliga fel eftersom skrivningar inte är idempotenter. SDK tillåter användare att konfigurera omförsöksmekanism för bandbreddsbegränsningar. Mer information om vilka fel du bör försöka igen på finns här.
- Använd SDK-loggning för att samla in extra diagnostikinformation och felsöka problem med svarstid.
Datadesign
- Begärandeavgiften för en angiven åtgärd korrelerar direkt med dokumentets storlek. Vi rekommenderar att du minskar storleken på dina dokument eftersom åtgärder på stora dokument kostar mer än åtgärder på mindre dokument.
- Vissa tecken är begränsade och kan inte användas i vissa identifierare: '/', '\', '?', '#'. Den allmänna rekommendationen är att inte använda några specialtecken i identifierare som databasnamn, samlingsnamn, objekt-ID eller partitionsnyckel för att undvika oväntade beteenden.
- Med Azure Cosmos DB-indexeringsprincipen kan du också ange vilka dokumentsökvägar som ska inkluderas eller undantas från indexering med hjälp av indexeringssökvägar
IndexingPolicy#getIncludedPaths()
ochIndexingPolicy#getExcludedPaths()
. Se till att du undantar oanvända sökvägar från indexering för snabbare skrivningar. Mer information finns i skapa index med SDK-exemplet.
Värdens egenskaper
- Du kan stöta på problem med anslutning/tillgänglighet på grund av brist på resurser på klientdatorn. Övervaka cpu-användningen på noder som kör Azure Cosmos DB-klienten och skala upp/ut om användningen är hög. Överväg också att köra din arbetsbelastning med klustermodulen.
- För de vanligaste fallen av produktionsarbetsbelastningar rekommenderar vi starkt att du använder minst 4 kärnor och virtuella datorer med 8 GB minne när det är möjligt.
- Om du använder en virtuell dator för att köra programmet aktiverar du Accelererat nätverk på den virtuella datorn för att hjälpa till med flaskhalsar på grund av hög trafik och minska svarstiden eller CPU-jitter. En annan sak att överväga är att använda en virtuell dator av högre kvalitet där den maximala CPU-användningen är under 70 %.
- Som standard returneras frågeresultat i segment på 100 objekt eller 4 MB, beroende på vilken gräns som uppnås först. Om en fråga returnerar fler än 100 objekt ökar du sidstorleken för att minska antalet tur- och returresor som krävs. Minnesförbrukningen ökar när sidstorleken ökar.