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. |
Notes
Consultez aussi Conseils de performances réseau pour le mode de connexion directe
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. |
Notes
Consultez également Bonnes pratiques lors de l’utilisation du mode passerelle pour Azure Cosmos DB NET SDK v3.
É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.
- Si vous ne connaissez que le nombre de vCore et de serveurs présents dans votre cluster de bases de données existant, lisez Estimation des unités de requête à l’aide de vCore ou de processeurs virtuels.
- Si vous connaissez les taux de requêtes typiques de votre charge de travail de base de données actuelle, lisez la section concernant l’estimation des unités de requête à l’aide du planificateur de capacité Azure Cosmos DB