Partager via


Ajuster les configurations de connexion pour le kit de développement logiciel (SDK) Java Azure Cosmos DB v3

Important

Les informations contenues dans cet article concernent uniquement le SDK .NET v3 Azure Cosmos DB. Pour plus d’informations, consultez les modes de connectivité du SDK SQL Azure Cosmos DB, les notes de publication du SDK .NET v3 Azure Cosmos DB v3, le référentiel Nuget et le guide de résolution des problèmes du SDK .NET Azure Cosmos DB. Si vous utilisez actuellement une version antérieure à la version v3, consultez le guide Migrer vers le SDK .NET v3 Azure Cosmos DB pour être accompagné dans la mise à niveau vers v3.

Azure Cosmos DB est une base de données distribuée rapide et flexible qui peut être mise à l’échelle en toute transparence avec une latence et un débit garantis. Vous n’avez pas à apporter de modifications d’architecture majeures ou écrire de code complexe pour mettre à l’échelle votre base de données avec Azure Cosmos DB. La réduction et l’augmentation de l’échelle est aussi simple que le passage d’un appel d’API ou de Kit de développement logiciel (SDK). Toutefois, étant donné qu’Azure Cosmos DB est accessible au moyen d’appels réseau, vous pouvez ajuster des configurations de connexion de manière à atteindre les meilleures performances lorsque vous utilisez le SDK Azure Cosmos DB .NET v3.

Configuration de connexion

Notes

Dans le SDK .NET v3 Azure Cosmos DB, le mode direct est le meilleur choix dans la plupart des cas pour améliorer les performances des bases de données avec la plupart des charges de travail.

Pour en savoir plus sur les différentes options de connectivité, consultez l’article sur les modes de connectivité.

Mode de connexion directe

Le mode de connexion par défaut du SDK .NET est le mode direct. En mode direct, les requêtes sont effectuées à l’aide du protocole TCP. En interne, le mode direct utilise une architecture spéciale pour gérer dynamiquement les ressources réseau et obtenir de meilleures performances. L’architecture côté client utilisée en mode direct permet une utilisation prévisible du réseau et un accès multiplexé aux réplicas Azure Cosmos DB. Pour en savoir plus sur l’architecture, consultez l’architecture de connexion en mode direct.

Vous configurez le mode de connexion lorsque vous créez l’instance CosmosClient dans CosmosClientOptions.

CosmosClient client = new CosmosClient(
  "<nosql-account-endpoint>",
  tokenCredential
  new CosmosClientOptions
  {
      ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
  }
);

Personnalisation du mode de connexion directe

Le mode direct peut être personnalisé via cosmosClientOptions transmis au constructeur CosmosClient. Nous recommandons aux utilisateurs d’éviter de les modifier, sauf si nécessaire et s’ils se sentent suffisamment à l’aise dans la compréhension des compromis.

Option de configuration Default Recommandé Détails
EnableTcpConnectionEndpointRediscovery true true Cela représente l’indicateur permettant de détecter les connexions se fermant à partir du serveur.
IdleTcpConnectionTimeout Par défaut, les connexions inactives restent ouvertes indéfiniment. 20m-24h Cela représente le temps d’inactivité après lequel les connexions inutilisées sont fermées. Les valeurs recommandées sont comprises entre 20 minutes et 24 heures.
MaxRequestsPerTcpConnection 30 30 Cela représente le nombre de requêtes autorisées simultanément sur une seule connexion TCP. Lorsque d’autres requêtes sont en cours d’exécution simultanément, le client direct/TCP ouvre des connexions supplémentaires. Ne définissez pas cette valeur en dessous de quatre requêtes par connexion ou au-dessus de 50 à 100 requêtes par connexion. Les applications avec un degré élevé de parallélisme par connexion, avec des demandes ou des réponses volumineuses, ou avec des exigences de latence strictes peuvent obtenir de meilleures performances avec 8 à 16 requêtes par connexion.
MaxTcpConnectionsPerEndpoint 65535 65535 Cela représente le nombre maximal de connexions TCP qui peuvent être ouvertes à chaque back-end Cosmos DB. Avec MaxRequestsPerTcpConnection, ce paramètre limite le nombre de requêtes envoyées simultanément à un seul back-end Cosmos DB (MaxRequestsPerTcpConnection x MaxTcpConnectionperEndpoint). La valeur doit être supérieure ou égale à 16.
OpenTcpConnectionTimeout 5 secondes 1 seconde Cela représente le temps nécessaire pour tenter d’établir une connexion. Lorsque le temps s’écoule, la tentative est annulée et une erreur est retournée. Les délais d’expiration plus longs retardent les nouvelles tentatives et les échecs.
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort Cela représente la stratégie de réutilisation du port client utilisée par la pile de transport.

Personnalisation du mode de connexion de passerelle

Le mode Passerelle peut être personnalisé via cosmosClientOptions transmis au constructeur CosmosClient. Nous recommandons aux utilisateurs d’éviter de les modifier, sauf si nécessaire et s’ils se sentent suffisamment à l’aise dans la compréhension des compromis.

Option de configuration Default Recommandé Détails
GatewayModeMaxConnectionLimit 50 50 Cela représente le nombre maximal de connexions simultanées autorisées pour le point de terminaison de service cible dans le service Azure Cosmos DB.
WebProxy null null Cela représente les informations de proxy utilisées pour les requêtes web.

Étapes suivantes

Pour en savoir plus sur les conseils de performances pour le SDK .NET, consultez Conseils sur les performances pour le SDK .NET v3 Azure Cosmos DB.