Kommentar
Å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.
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. För produktionsarbetsbelastningar, aktivera tjänsthanterad redundans. 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
CosmosClientunder programmets livslängd för bättre prestanda. - Ange preferredRegions i SDK med Hjälp av ConnectionPolicy. Under failoverhändelser skickas skrivåtgärder till den nuvarande skrivregionen och alla läsåtgärder 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 ansluter till databasen bör skapas för att förvänta sig 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 ger användarna möjlighet att konfigurera omförsökslogik för hastighetsbegränsningar. Mer information om vilka fel du ska försöka igen 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
includedPathsochexcludedPaths. 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 processoranvä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 arbetsbelastningen 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. Du kanske också vill överväga att använda en mer avancerad virtuell maskin 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.