CosmosClientBuilder Classe
- java.
lang. Object - com.
azure. cosmos. CosmosClientBuilder
- com.
Implémente
public class CosmosClientBuilder
implements TokenCredentialTrait<CosmosClientBuilder>, AzureKeyCredentialTrait<CosmosClientBuilder>, EndpointTrait<CosmosClientBuilder>
Classe d’assistance pour générer CosmosAsyncClient des instances et CosmosClient en tant que représentation logique du service de base de données Azure Cosmos.
CosmosAsyncClient et CosmosClient sont thread-safe. Il est recommandé de conserver une seule instance de CosmosClient ou CosmosAsyncClient par durée de vie de l’application, ce qui permet une gestion efficace des connexions et des performances. Les initialisations CosmosAsyncClient et CosmosClient sont des opérations lourdes : n’utilisez pas d’instances d’initialisation CosmosAsyncClient ou CosmosClient comme validations d’informations d’identification ou de connectivité réseau.
Lors de la génération du client, endpoint() et key() sont des API obligatoires. Sans celles-ci, l’initialisation échoue.
Bien que consistencyLevel ne soit pas obligatoire, nous vous suggérons vivement de prêter attention à cette API lors de la création du client. Par défaut, le niveau de cohérence du compte est utilisé si aucun n’est fourni.
Par défaut, le mode de connexion directe est utilisé si aucun n’est spécifié.
Building Cosmos Async Client minimal APIs (without any customized configurations)
CosmosAsyncClient client = new CosmosClientBuilder()
.endpoint(serviceEndpoint)
.key(key)
.buildAsyncClient();
Building Cosmos Async Client with customizations
CosmosAsyncClient client = new CosmosClientBuilder()
.endpoint(serviceEndpoint)
.key(key)
.directMode(directConnectionConfig, gatewayConnectionConfig)
.consistencyLevel(ConsistencyLevel.SESSION)
.connectionSharingAcrossClientsEnabled(true)
.contentResponseOnWriteEnabled(true)
.userAgentSuffix("my-application1-client")
.preferredRegions(Collections.singletonList("West US", "East US"))
.buildAsyncClient();
Building Cosmos Sync Client minimal APIs (without any customized configurations)
CosmosClient client = new CosmosClientBuilder()
.endpoint(serviceEndpoint)
.key(key)
.buildClient();
Building Cosmos Sync Client with customizations
CosmosClient client = new CosmosClientBuilder()
.endpoint(serviceEndpoint)
.key(key)
.directMode(directConnectionConfig, gatewayConnectionConfig)
.consistencyLevel(ConsistencyLevel.SESSION)
.connectionSharingAcrossClientsEnabled(true)
.contentResponseOnWriteEnabled(true)
.userAgentSuffix("my-application1-client")
.preferredRegions(Collections.singletonList("West US", "East US"))
.buildClient();
Récapitulatif du constructeur
Constructeur | Description |
---|---|
CosmosClientBuilder() |
Instancie un nouveau générateur de client Cosmos. |
Résumé de la méthode
Modificateur et type | Méthode et description |
---|---|
Cosmos |
authorizationTokenResolver(CosmosAuthorizationTokenResolver cosmosAuthorizationTokenResolver)
Définit le programme de résolution de jetons |
Cosmos |
buildAsyncClient()
Génère un client cosmos asynchrone avec les propriétés fournies |
Cosmos |
buildClient()
Génère un client de synchronisation Cosmos avec les propriétés fournies |
Cosmos |
clientTelemetryConfig(CosmosClientTelemetryConfig telemetryConfig)
Retourne le instance de configuration de télémétrie du client pour ce générateur |
Cosmos |
clientTelemetryEnabled(boolean clientTelemetryEnabled)
Définit l’indicateur pour activer la télémétrie du client qui collecte régulièrement des statistiques d’agrégation des opérations de base de données, des informations système telles que le processeur/la mémoire et les envoie au service de supervision cosmos, ce qui sera utile pendant le débogage. |
Cosmos |
connectionSharingAcrossClientsEnabled(boolean connectionSharingAcrossClientsEnabled)
Active le partage des connexions entre plusieurs clients Cosmos. |
Cosmos |
consistencyLevel(ConsistencyLevel desiredConsistencyLevel)
Définit le ConsistencyLevel à utiliser Par défaut, SESSION la cohérence sera utilisée. |
Cosmos |
contentResponseOnWriteEnabled(boolean contentResponseOnWriteEnabled)
Définit le booléen pour renvoyer uniquement les en-têtes et status code dans la réponse Cosmos DB en cas d’opérations Créer, Mettre à jour et Supprimer sur Cosmos |
Cosmos |
credential(AzureKeyCredential credential)
Définit le AzureKeyCredential à utiliser |
Cosmos |
credential(TokenCredential credential)
Définit le TokenCredential utilisé pour autoriser les requêtes envoyées au service. |
Cosmos |
directMode()
Définit la configuration de connexion DIRECT par défaut à utiliser. |
Cosmos |
directMode(DirectConnectionConfig directConnectionConfig)
Définit la configuration de la connexion DIRECT à utiliser. |
Cosmos |
directMode(DirectConnectionConfig directConnectionConfig, GatewayConnectionConfig gatewayConnectionConfig)
Définit la configuration de la connexion DIRECT à utiliser. |
Cosmos |
endToEndOperationLatencyPolicyConfig(CosmosEndToEndOperationLatencyPolicyConfig cosmosEndToEndOperationLatencyPolicyConfig)
Définit le CosmosEndToEndOperationLatencyPolicyConfig sur le client |
Cosmos |
endpoint(String endpoint)
Définit le point de terminaison Azure Cosmos DB auquel le KIT de développement logiciel (SDK) doit se connecter |
Cosmos |
endpointDiscoveryEnabled(boolean endpointDiscoveryEnabled)
Définit l’indicateur pour activer la découverte de points de terminaison pour les comptes de base de données géorépliqués. |
Cosmos |
excludedRegionsSupplier(Supplier<CosmosExcludedRegions> excludedRegionsSupplier)
Définit un Supplier |
Cosmos |
gatewayMode()
Définit la configuration de connexion GATEWAY par défaut à utiliser. |
Cosmos |
gatewayMode(GatewayConnectionConfig gatewayConnectionConfig)
Définit la configuration de connexion GATEWAY à utiliser. |
Cosmos |
key(String key)
Définit une master ou une clé en lecture seule utilisée pour effectuer l’authentification pour accéder à la ressource. |
Cosmos |
multipleWriteRegionsEnabled(boolean multipleWriteRegionsEnabled)
Définit l’indicateur pour activer les écritures dans toutes les régions pour les comptes de base de données géorépliqués dans le service Azure Cosmos DB. |
Cosmos |
openConnectionsAndInitCaches(CosmosContainerProactiveInitConfig proactiveContainerInitConfig)
Définit le CosmosContainerProactiveInitConfig qui permet d’échauffer les caches et les connexions associés aux conteneurs obtenus à partir de getCosmosContainerIdentities() vers les réplicas obtenus à partir des premières k régions préférées où k est évalué à getProactiveConnectionRegionsCount(). |
Cosmos |
permissions(List<CosmosPermissionProperties> permissions)
Définit la liste d’autorisations, qui contient les jetons de ressource nécessaires pour accéder aux ressources. |
Cosmos |
preferredRegions(List<String> preferredRegions)
Définit les régions préférées pour les comptes de base de données géorépliqués. |
Cosmos |
readRequestsFallbackEnabled(boolean readRequestsFallbackEnabled)
Définit s’il faut autoriser les lectures à accéder à plusieurs régions configurées sur un compte du service Azure Cosmos DB. |
Cosmos |
resourceToken(String resourceToken)
Définit un jeton de ressource utilisé pour effectuer l’authentification pour accéder à la ressource. |
Cosmos |
sessionCapturingOverrideEnabled(boolean sessionCapturingOverrideEnabled)
La capture de session est activée par défaut pour SESSION. |
Cosmos |
sessionRetryOptions(SessionRetryOptions sessionRetryOptions)
Définit le SessionRetryOptions instance sur le client. |
Cosmos |
throttlingRetryOptions(ThrottlingRetryOptions throttlingRetryOptions)
Définit les options de stratégie de nouvelle tentative associées au document |
Cosmos |
userAgentSuffix(String userAgentSuffix)
définit la valeur du suffixe user-agent. |
Méthodes héritées de java.lang.Object
Détails du constructeur
CosmosClientBuilder
public CosmosClientBuilder()
Instancie un nouveau générateur de client Cosmos.
Détails de la méthode
authorizationTokenResolver
public CosmosClientBuilder authorizationTokenResolver(CosmosAuthorizationTokenResolver cosmosAuthorizationTokenResolver)
Définit le programme de résolution de jetons
Parameters:
Returns:
buildAsyncClient
public CosmosAsyncClient buildAsyncClient()
Génère un client cosmos asynchrone avec les propriétés fournies
Returns:
buildClient
public CosmosClient buildClient()
Génère un client de synchronisation Cosmos avec les propriétés fournies
Returns:
clientTelemetryConfig
public CosmosClientBuilder clientTelemetryConfig(CosmosClientTelemetryConfig telemetryConfig)
Retourne le instance de configuration de télémétrie du client pour ce générateur
Parameters:
Returns:
clientTelemetryEnabled
public CosmosClientBuilder clientTelemetryEnabled(boolean clientTelemetryEnabled)
Définit l’indicateur pour activer la télémétrie du client qui collecte régulièrement des statistiques d’agrégation des opérations de base de données, des informations système telles que le processeur/la mémoire et les envoie au service de supervision cosmos, ce qui sera utile pendant le débogage.
La valeur DEFAULT est false, ce qui indique qu’il s’agit d’une fonctionnalité d’adhésion, par défaut aucune collection de données de télémétrie.
Parameters:
Returns:
connectionSharingAcrossClientsEnabled
public CosmosClientBuilder connectionSharingAcrossClientsEnabled(boolean connectionSharingAcrossClientsEnabled)
Active le partage des connexions entre plusieurs clients Cosmos. La valeur par défaut est false.
CosmosAsyncClient client1 = new CosmosClientBuilder()
.endpoint(serviceEndpoint1)
.key(key1)
.consistencyLevel(ConsistencyLevel.SESSION)
.connectionSharingAcrossClientsEnabled(true)
.buildAsyncClient();
CosmosAsyncClient client2 = new CosmosClientBuilder()
.endpoint(serviceEndpoint2)
.key(key2)
.consistencyLevel(ConsistencyLevel.SESSION)
.connectionSharingAcrossClientsEnabled(true)
.buildAsyncClient();
// when configured this way client1 and client2 will share connections when possible.
Si vous avez plusieurs instances du client Cosmos dans la même machine virtuelle Java qui interagissent avec plusieurs comptes Cosmos, l’activation de cette option permet le partage de connexion en mode Direct, si possible entre les instances du client Cosmos. Notez que lorsque vous définissez cette option, la configuration de la connexion (par exemple, configuration du délai d’attente du socket, configuration du délai d’inactivité) du premier client instancié sera utilisée pour toutes les autres instances du client.
Parameters:
Returns:
consistencyLevel
public CosmosClientBuilder consistencyLevel(ConsistencyLevel desiredConsistencyLevel)
Définit le ConsistencyLevel à utiliser Par défaut, SESSION la cohérence sera utilisée.
Parameters:
Returns:
contentResponseOnWriteEnabled
public CosmosClientBuilder contentResponseOnWriteEnabled(boolean contentResponseOnWriteEnabled)
Définit le booléen pour renvoyer uniquement les en-têtes et status code dans la réponse Cosmos DB en cas d’opérations Créer, Mettre à jour et Supprimer sur CosmosItem. Si la valeur est false (qui est par défaut), le service ne retourne pas la charge utile dans la réponse. Il réduit la charge réseau et processeur en ne renvoyant pas la charge utile sur le réseau et en la sérialisant sur le client. Cette fonctionnalité n’a pas d’impact sur l’utilisation de ru pour les opérations de lecture ou d’écriture. Par défaut, cette valeur est false.
Parameters:
Returns:
credential
public CosmosClientBuilder credential(AzureKeyCredential credential)
Définit le AzureKeyCredential à utiliser
Parameters:
Returns:
credential
public CosmosClientBuilder credential(TokenCredential credential)
Définit le TokenCredential utilisé pour autoriser les requêtes envoyées au service. Pour plus d’informations sur l’utilisation appropriée du type, consultez la documentation sur l’identité et l’authentification du TokenCredential Kit de développement logiciel (SDK) Azure pour Java.
Parameters:
Returns:
directMode
public CosmosClientBuilder directMode()
Définit la configuration de connexion DIRECT par défaut à utiliser. Par défaut, le générateur est initialisé avec directMode()
Returns:
directMode
public CosmosClientBuilder directMode(DirectConnectionConfig directConnectionConfig)
Définit la configuration de la connexion DIRECT à utiliser. Par défaut, le générateur est initialisé avec directMode()
Parameters:
Returns:
directMode
public CosmosClientBuilder directMode(DirectConnectionConfig directConnectionConfig, GatewayConnectionConfig gatewayConnectionConfig)
Définit la configuration de la connexion DIRECT à utiliser. gatewayConnectionConfig : représente la configuration de base à utiliser pour le client de passerelle. Même en mode de connexion directe, certaines des opérations de métadonnées passent par le client de passerelle. La définition de la configuration de connexion de passerelle dans cette API n’affecte pas le mode de connexion, qui sera Direct dans ce cas.
Parameters:
Returns:
endToEndOperationLatencyPolicyConfig
public CosmosClientBuilder endToEndOperationLatencyPolicyConfig(CosmosEndToEndOperationLatencyPolicyConfig cosmosEndToEndOperationLatencyPolicyConfig)
Définit le CosmosEndToEndOperationLatencyPolicyConfig sur le client
Parameters:
Returns:
endpoint
public CosmosClientBuilder endpoint(String endpoint)
Définit le point de terminaison Azure Cosmos DB auquel le KIT de développement logiciel (SDK) doit se connecter
Parameters:
Returns:
endpointDiscoveryEnabled
public CosmosClientBuilder endpointDiscoveryEnabled(boolean endpointDiscoveryEnabled)
Définit l’indicateur pour activer la découverte de points de terminaison pour les comptes de base de données géorépliqués.
Lorsque EnableEndpointDiscovery a la valeur true, le KIT de développement logiciel (SDK) découvre automatiquement les régions d’écriture et de lecture actuelles pour s’assurer que les demandes sont envoyées à la région appropriée en fonction de la capacité de la région et de la préférence de l’utilisateur.
La valeur par défaut de cette propriété est true, ce qui indique que la découverte du point de terminaison est activée.
Parameters:
Returns:
excludedRegionsSupplier
public CosmosClientBuilder excludedRegionsSupplier(Supplier
Définit un Supplier
Parameters:
CosmosExcludedRegions
instance.
Returns:
gatewayMode
public CosmosClientBuilder gatewayMode()
Définit la configuration de connexion GATEWAY par défaut à utiliser.
Returns:
gatewayMode
public CosmosClientBuilder gatewayMode(GatewayConnectionConfig gatewayConnectionConfig)
Définit la configuration de connexion GATEWAY à utiliser.
Parameters:
Returns:
key
public CosmosClientBuilder key(String key)
Définit une master ou une clé en lecture seule utilisée pour effectuer l’authentification pour accéder à la ressource.
Parameters:
Returns:
multipleWriteRegionsEnabled
public CosmosClientBuilder multipleWriteRegionsEnabled(boolean multipleWriteRegionsEnabled)
Définit l’indicateur pour activer les écritures dans toutes les régions pour les comptes de base de données géorépliqués dans le service Azure Cosmos DB.
Lorsque la valeur de cette propriété est true, le KIT de développement logiciel (SDK) dirige les opérations d’écriture vers les régions accessibles en écriture du compte de base de données géorépliqué. Les régions accessibles en écriture sont triées par propriété PreferredRegions. La définition de la valeur de la propriété sur true n’a pas d’effet tant que EnableMultipleWriteRegions dans DatabaseAccount est également défini sur true.
La valeur DEFAULT a la valeur true, ce qui indique que les écritures sont dirigées vers les régions accessibles en écriture du compte de base de données géorépliqué.
Parameters:
Returns:
openConnectionsAndInitCaches
public CosmosClientBuilder openConnectionsAndInitCaches(CosmosContainerProactiveInitConfig proactiveContainerInitConfig)
Définit le CosmosContainerProactiveInitConfig qui permet d’échauffer les caches et les connexions associés aux conteneurs obtenus à partir de getCosmosContainerIdentities() vers les réplicas obtenus à partir des premières k régions préférées où k est évalué à getProactiveConnectionRegionsCount().
Utiliser la CosmosContainerProactiveInitConfigBuilder classe pour instancier la CosmosContainerProactiveInitConfig classe
Parameters:
Returns:
permissions
public CosmosClientBuilder permissions(List
Définit la liste d’autorisations, qui contient les jetons de ressource nécessaires pour accéder aux ressources.
Parameters:
Returns:
preferredRegions
public CosmosClientBuilder preferredRegions(List
Définit les régions préférées pour les comptes de base de données géorépliqués. Par exemple, « USA Est » comme région par défaut.
Lorsque EnableEndpointDiscovery a la valeur true et que PreferredRegions n’est pas vide, le KIT de développement logiciel (SDK) préfère utiliser les régions du conteneur dans l’ordre dans lequel elles sont spécifiées pour effectuer des opérations.
Si EnableEndpointDiscovery a la valeur false, cette propriété est ignorée.
Parameters:
Returns:
readRequestsFallbackEnabled
public CosmosClientBuilder readRequestsFallbackEnabled(boolean readRequestsFallbackEnabled)
Définit s’il faut autoriser les lectures à accéder à plusieurs régions configurées sur un compte du service Azure Cosmos DB.
La valeur DEFAULT est true.
Si cette propriété n’est pas définie, la valeur par défaut est true pour tous les niveaux de cohérence autres que l’obsolescence limitée. La valeur par défaut est false pour l’obsolescence limitée. 1. #endpointDiscoveryEnabled est vrai 2. le compte Azure Cosmos DB a plusieurs régions
Parameters:
Returns:
resourceToken
public CosmosClientBuilder resourceToken(String resourceToken)
Définit un jeton de ressource utilisé pour effectuer l’authentification pour accéder à la ressource.
Parameters:
Returns:
sessionCapturingOverrideEnabled
public CosmosClientBuilder sessionCapturingOverrideEnabled(boolean sessionCapturingOverrideEnabled)
La capture de session est activée par défaut pour SESSION. Pour les autres niveaux de cohérence, cela n’est pas nécessaire, sauf si vous avez besoin d’envoyer occasionnellement des demandes avec cohérence de session alors que le client n’est pas configuré dans la session.
L’activation de la capture de session pour le mode session n’a aucun effet.
Parameters:
Returns:
sessionRetryOptions
public CosmosClientBuilder sessionRetryOptions(SessionRetryOptions sessionRetryOptions)
Définit le SessionRetryOptions instance sur le client.
Ce paramètre permet d’optimiser le comportement de nouvelle tentative associé NOT_FOUND / READ_SESSION_NOT_AVAILABLE
aux scénarios ou 404 / 1002
qui se produisent lorsque la cohérence ciblée utilisée par la requête est Cohérence de session et qu’une requête est envoyée à une région qui n’a pas suffisamment de données récentes que la demande recherche.
CLAUSE DE NON-RESPONSABILITÉ : le paramètre SessionRetryOptions modifie le comportement des nouvelles tentatives pour toutes les opérations ou charges de travail exécutées via cette instance du client.
Pour les comptes à plusieurs écritures :
- Pour une demande de lecture allant vers une région de lecture locale, il est possible d’optimiser la disponibilité en demandant à la demande d’être retentée sur une autre région d’écriture, car l’autre région d’écriture peut avoir des données plus à jour.
- Pour une demande de lecture allant vers une région d’écriture locale, il peut être utile de basculer immédiatement vers une autre région d’écriture, à condition que la région d’écriture locale ne dispose pas des données les plus à jour.
- Pour une demande d’écriture envoyée à une région d’écriture locale, il peut être utile de basculer immédiatement vers une autre région d’écriture, à condition que la région d’écriture locale ne dispose pas des données les plus à jour.
Pour les comptes à écriture unique :
- Si une demande de lecture est envoyée à une région de lecture locale, il est utile de basculer plus rapidement vers la région d’écriture.
- Si une demande de lecture est envoyée à une région d’écriture, le SessionRetryOptions paramètre n’a pas d’importance, car la région d’écriture dans un compte à écriture unique contient les données les plus à jour.
- Pour une écriture dans une région d’écriture dans un compte à écriture unique, les erreurs ne s’appliquent pas,
READ_SESSION_NOT_AVAILABLE
car la région d’écriture a toujours la version la plus récente des données et toutes les écritures sont effectuées dans le réplica principal de cette région. Par conséquent, les retards de réplication à l’origine d’erreurs ne s’appliquent pas ici.
À propos des indicateurs de changement de région :
- Pour hiérarchiser la région locale pour les nouvelles tentatives, utilisez l’indicateur LOCAL_REGION_PREFERRED
- Pour déplacer plus rapidement les nouvelles tentatives vers une région différente/distante, utilisez l’indicateur REMOTE_REGION_PREFERRED
Opérations prises en charge :
- Lire
- Requête
- Créer
- Replace
- Upsert
- Supprimer
- Correctif
- Batch
- Bloc
Parameters:
Returns:
throttlingRetryOptions
public CosmosClientBuilder throttlingRetryOptions(ThrottlingRetryOptions throttlingRetryOptions)
Définit les options de stratégie de nouvelle tentative associées au instance DocumentClient.
Les propriétés de la classe RetryOptions permettent à l’application de personnaliser les stratégies de nouvelle tentative intégrées. Cette propriété est facultative. Lorsqu’il n’est pas défini, le Kit de développement logiciel (SDK) utilise les valeurs par défaut pour configurer les stratégies de nouvelle tentative. Pour plus d’informations, consultez Classe RetryOptions.
Parameters:
Returns:
userAgentSuffix
public CosmosClientBuilder userAgentSuffix(String userAgentSuffix)
définit la valeur du suffixe user-agent.
Parameters:
Returns:
S’applique à
Azure SDK for Java