Meilleures pratiques pour le Kit de développement logiciel (SDK) JavaScript dans Azure Cosmos DB pour NoSQL

Ce guide inclut les meilleures pratiques pour les solutions créées à l’aide de la dernière version du Kit de développement logiciel (SDK) JavaScript pour Azure Cosmos DB pour NoSQL. Les meilleures pratiques incluses ici permettent d’améliorer la latence, d’améliorer la disponibilité et d’améliorer les performances globales de vos solutions.

Configuration du compte

  • Veillez à exécuter votre application dans la même région Azure que votre compte Azure Cosmos DB, dans la mesure du possible pour réduire la latence. Activez les régions 2-4 et répliquez vos comptes dans plusieurs régions pour une disponibilité optimale. Pour les charges de travail de production, activez le basculement managé par le service. En l’absence de cette configuration, le compte subit une perte de disponibilité en écriture pendant toute la durée de la panne de la région d’écriture, car le basculement manuel échoue en raison d'une absence de connectivité entre les régions. Pour plus d’informations sur l’ajout de plusieurs régions à l’aide du Kit de développement logiciel (SDK) JavaScript, consultez le didacticiel de distribution globale.

Utilisation du Kit de développement logiciel (SDK)

  • Utilisez toujours la dernière version du kit SDK Azure Cosmos DB disponible pour des performances optimales.
  • Utilisez une seule instance pendant toute la CosmosClient durée de vie de votre application pour améliorer les performances.
  • Définissez lesregions préférées dans le Kit de développement logiciel (SDK) à l’aide de ConnectionPolicy. Pendant les basculements, les opérations d’écriture sont envoyées à la région d’écriture en cours et toutes les lectures sont envoyées à la première région de la liste de régions de votre choix. Pour plus d’informations sur les mécanismes de basculement régionaux, consultez la résolution des problèmes de disponibilité.
  • Une erreur temporaire est une erreur qui a une cause sous-jacente qui se résout rapidement seule. Les applications qui se connectent à votre base de données doivent être conçues de sorte à s’attendre à de telles erreurs temporaires. Pour les gérer, implémentez une logique de nouvelle tentative dans leur code au lieu de les exposer aux utilisateurs comme des erreurs d’application. Le kit de développement logiciel (SDK) intègre une logique permettant de gérer ces échecs temporaires sur des demandes renouvelables telles que des opérations de lecture ou d’interrogation. Le Kit de développement logiciel (SDK) ne peut pas répéter les tentatives d'écriture en cas d'échecs temporaires, car les écritures ne sont pas idempotentes. Le SDK permet aux utilisateurs de configurer une logique de nouvelle tentative pour des limitations. Pour plus d’informations sur les erreurs sur lesquelles vous pouvez réessayer, visitez ici.
  • Utilisez la journalisation du Kit de développement logiciel (SDK) pour capturer des informations de diagnostic supplémentaires et résoudre les problèmes de latence.

Conception des données

  • Les frais de requête d’une opération donnée sont directement liés à la taille du document. Nous vous recommandons de réduire la taille de vos documents, car les opérations sur les documents volumineux coûtent plus que les opérations sur des documents plus petits.
  • Certains caractères sont limités et ne peuvent pas être utilisés dans certains identificateurs : '/', '\', ' ?', '#'. La recommandation générale est de ne pas utiliser de caractères spéciaux dans des identificateurs tels que le nom de la base de données, le nom de collection, l’ID d’élément ou la clé de partition pour éviter tout comportement inattendu.
  • La stratégie d’indexation d’Azure Cosmos DB vous permet également de spécifier les chemins de document à inclure ou exclure lors de l’indexation en utilisant les chemins d’indexation includedPaths et excludedPaths. Veillez à exclure les chemins inutilisés de l’indexation pour accélérer les écritures. Pour plus d’informations, consultez la création d’index à l’aide de l’exemple sdk.

Caractéristiques de l’hôte

  • Vous pouvez rencontrer des problèmes de connectivité/disponibilité en raison d’un manque de ressources sur votre ordinateur client. Surveillez l’utilisation de votre processeur sur les nœuds exécutant le client Azure Cosmos DB et effectuez un scale-up/out si l’utilisation est élevée. Envisagez également d'exécuter votre charge de travail en utilisant le module cluster.
  • Pour les cas les plus courants de charges de travail de production, nous vous recommandons vivement d’utiliser des machines virtuelles avec au moins 4 cœurs et 8 Go de mémoire si possible.
  • Si vous utilisez une machine virtuelle pour exécuter votre application, activez la Mise en réseau accélérée sur votre machine virtuelle pour faciliter les goulots d’étranglement dus à un trafic élevé et réduire la latence ou l’instabilité du processeur. Vous pouvez également envisager d’utiliser une machine virtuelle plus sophistiquée où l’utilisation maximale du processeur est inférieure à 70 %.
  • Par défaut, les résultats de requête sont retournés dans des segments de 100 éléments ou de 4 Mo, selon la limite atteinte en premier. Si une requête retourne plus de 100 éléments, augmentez la taille de la page pour réduire le nombre d’allers-retours requis. La consommation de mémoire augmente à mesure que la taille de page augmente.

Étapes suivantes