Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A: NoSQL
Questa guida include le procedure consigliate per le soluzioni create con la versione più recente di JavaScript SDK per Azure Cosmos DB for NoSQL. Le procedure consigliate incluse in questo articolo consentono di migliorare la latenza, la disponibilità e le prestazioni complessive per le soluzioni.
Configurazione dell'account
- Assicurarsi di eseguire l'applicazione nella stessa area di Azure dell'account Azure Cosmos DB, laddove possibile, per ridurre la latenza. Abilitare da due a quattro aree e replicare gli account in più aree per ottenere la migliore disponibilità. Per i carichi di lavoro di produzione abilitare il failover gestito dal servizio. In assenza di questa configurazione, l'account riscontra perdite di disponibilità in scrittura per tutta la durata dell'interruzione dell'area di scrittura, perché non è possibile eseguire il failover manuale a causa della mancanza di connettività nell'area. Per altre informazioni su come aggiungere più aree con JavaScript SDK, vedere l'esercitazione sulla distribuzione globale.
Uso dell'SDK
- Per prestazioni ottimali usare sempre l'ultima versione disponibile di Azure Cosmos DB SDK.
- Per prestazioni migliori usare un'istanza singola di
CosmosClientper tutta la durata dell'applicazione. - Impostare preferredRegions nell'SDK con ConnectionPolicy. Durante i failover le operazioni di scrittura vengono inviate all'area di scrittura corrente e tutte le letture vengono inviate alla prima area all'interno dell'elenco delle aree preferite. Per altre informazioni sui meccanismi di failover a livello di area, vedere l'articolo sulla risoluzione dei problemi di disponibilità.
- Un errore temporaneo è un errore che ha una causa sottostante che si risolve presto da sola. Le applicazioni che si connettono al database devono essere sviluppate in modo da prevedere tali errori temporanei. Per gestirli, implementare la logica di ripetizione dei tentativi nel codice invece di mostrarli agli utenti come errori dell'applicazione. L'SDK include una logica predefinita per gestire questi errori temporanei nelle richieste ripetibili, come le operazioni di lettura o query. L'SDK non effettua nuovi tentativi di scrittura per gli errori temporanei perché le scritture non sono idempotenti. L'SDK consente agli utenti di configurare la logica di ripetizione dei tentativi per le limitazioni. Per i dettagli sugli errori per cui ripetere i tentativi, vedere qui.
- Usare la registrazione SDK per acquisire informazioni di diagnostica aggiuntive e risolvere i problemi di latenza.
Progettazione dei dati
- L'addebito richiesto per un'operazione specifica è correlato direttamente alla dimensione del documento. È consigliabile ridurre le dimensioni dei documenti, in quanto le operazioni su documenti di grandi dimensioni sono più costose rispetto alle operazioni su documenti di piccole dimensioni.
- L'uso dei caratteri seguenti è limitato e non è consentito in alcuni identificatori: '/', '\', '?', '#'. È consigliabile non usare caratteri speciali negli identificatori come nome del database, nome della raccolta, ID elemento o chiave di partizione per evitare comportamenti imprevisti.
- I criteri di indicizzazione di Azure Cosmos DB consentono anche di specificare i percorsi dei documenti da includere o escludere dall'indicizzazione usando i percorsi di indicizzazione
IndexingPolicy#getIncludedPaths()eIndexingPolicy#getExcludedPaths(). Per velocizzare le operazioni di scrittura, assicurarsi di escludere i percorsi inutilizzati dall'indicizzazione. Per altre informazioni, vedere l'articolo sulla creazione di indici con l'esempio dell'SDK.
Caratteristiche dell'host
- È possibile che si verifichino problemi di connettività/disponibilità a causa della mancanza di risorse nel computer client. Monitorare l'utilizzo della CPU nei nodi che eseguono il client di Azure Cosmos DB e scalare in verticale/orizzontale quando l'utilizzo è elevato. Considera anche di eseguire il carico di lavoro utilizzando il modulo cluster.
- Per la maggior parte dei casi comuni dei carichi di lavoro di produzione, è consigliabile usare macchine virtuali con almeno 4 core e 8 GB di memoria quando possibile.
- Se si usa una macchina virtuale per eseguire l'applicazione, abilitare la rete accelerata nella macchina virtuale per evitare i colli di bottiglia dovuti a traffico elevato e ridurre la latenza o l'instabilità della CPU. È anche possibile valutare l'uso di una macchina virtuale di livello superiore in cui l'utilizzo massimo della CPU è inferiore al 70%.
- Per impostazione predefinita, i risultati delle query vengono restituiti in blocchi di 100 elementi o 4 MB, a seconda del limite che viene raggiunto per primo. Se una query restituisce più di 100 elementi, aumentare le dimensioni della pagina per ridurre il numero di round trip necessari. L'utilizzo della memoria aumenta man mano che le dimensioni della pagina aumentano.