CosmosClientBuilder Clase
- java.
lang. Object - com.
azure. cosmos. CosmosClientBuilder
- com.
Implementaciones
public class CosmosClientBuilder
implements TokenCredentialTrait<CosmosClientBuilder>, AzureKeyCredentialTrait<CosmosClientBuilder>, EndpointTrait<CosmosClientBuilder>
Clase auxiliar para compilar CosmosAsyncClient instancias y CosmosClient como representación lógica del servicio de base de datos de Azure Cosmos.
CosmosAsyncClient y CosmosClient son seguros para subprocesos. Se recomienda mantener una sola instancia de CosmosClient o CosmosAsyncClient por duración de la aplicación, lo que permite una administración y un rendimiento de conexión eficaces. Las inicializaciones CosmosAsyncClient y CosmosClient son operaciones intensivas: no use la inicialización cosmosAsyncClient ni las instancias de CosmosClient como credenciales o validaciones de conectividad de red.
Al compilar el cliente, endpoint() y key() son API obligatorias, sin estas se producirá un error en la inicialización.
Aunque consistencyLevel no es obligatorio, pero se recomienda prestar atención a esta API al compilar el cliente. De forma predeterminada, se usa el nivel de coherencia de la cuenta si no se proporciona ninguno.
De forma predeterminada, se usa el modo de conexión directa si no se especifica ninguno.
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();
Resumen del constructor
Constructor | Description |
---|---|
CosmosClientBuilder() |
Crea una instancia de un nuevo generador de cliente de Cosmos. |
Resumen del método
Modificador y tipo | Método y descripción |
---|---|
Cosmos |
authorizationTokenResolver(CosmosAuthorizationTokenResolver cosmosAuthorizationTokenResolver)
Establece la resolución de tokens |
Cosmos |
buildAsyncClient()
Compila un cliente asincrónico de Cosmos con las propiedades proporcionadas. |
Cosmos |
buildClient()
Compila un cliente de sincronización de Cosmos con las propiedades proporcionadas. |
Cosmos |
clientTelemetryConfig(CosmosClientTelemetryConfig telemetryConfig)
Devuelve la instancia de configuración de telemetría del cliente para este generador. |
Cosmos |
clientTelemetryEnabled(boolean clientTelemetryEnabled)
Establece la marca para habilitar la telemetría de cliente que recopilará periódicamente estadísticas de agregación de operaciones de base de datos, información del sistema como cpu/memoria y la enviará al servicio de supervisión de Cosmos, lo que será útil durante la depuración. |
Cosmos |
connectionSharingAcrossClientsEnabled(boolean connectionSharingAcrossClientsEnabled)
Permite el uso compartido de conexiones entre varios clientes de Cosmos. |
Cosmos |
consistencyLevel(ConsistencyLevel desiredConsistencyLevel)
Establece el objeto ConsistencyLevel que se va a usar de forma predeterminada, SESSION se usará la coherencia. |
Cosmos |
contentResponseOnWriteEnabled(boolean contentResponseOnWriteEnabled)
Establece el valor booleano para que solo devuelva los encabezados y el código de estado en la respuesta de Cosmos DB en el caso de las operaciones Crear, Actualizar y Eliminar en Cosmos |
Cosmos |
credential(AzureKeyCredential credential)
Establece el objeto AzureKeyCredential que se va a usar. |
Cosmos |
credential(TokenCredential credential)
Establece el TokenCredential objeto utilizado para autorizar las solicitudes enviadas al servicio. |
Cosmos |
directMode()
Establece la configuración de conexión DIRECTA predeterminada que se va a usar. |
Cosmos |
directMode(DirectConnectionConfig directConnectionConfig)
Establece la configuración de conexión DIRECTA que se va a usar. |
Cosmos |
directMode(DirectConnectionConfig directConnectionConfig, GatewayConnectionConfig gatewayConnectionConfig)
Establece la configuración de conexión DIRECTA que se va a usar. |
Cosmos |
endToEndOperationLatencyPolicyConfig(CosmosEndToEndOperationLatencyPolicyConfig cosmosEndToEndOperationLatencyPolicyConfig)
Establece en CosmosEndToEndOperationLatencyPolicyConfig el cliente |
Cosmos |
endpoint(String endpoint)
Establece el punto de conexión de Azure Cosmos DB al que se conectará el SDK. |
Cosmos |
endpointDiscoveryEnabled(boolean endpointDiscoveryEnabled)
Establece la marca para habilitar la detección de puntos de conexión para las cuentas de base de datos con replicación geográfica. |
Cosmos |
excludedRegionsSupplier(Supplier<CosmosExcludedRegions> excludedRegionsSupplier)
Establece un Supplier |
Cosmos |
gatewayMode()
Establece la configuración de conexión de puerta de enlace predeterminada que se va a usar. |
Cosmos |
gatewayMode(GatewayConnectionConfig gatewayConnectionConfig)
Establece la configuración de conexión de puerta de enlace que se va a usar. |
Cosmos |
key(String key)
Establece una clave maestra o de solo lectura que se usa para realizar la autenticación para acceder al recurso. |
Cosmos |
multipleWriteRegionsEnabled(boolean multipleWriteRegionsEnabled)
Establece la marca para habilitar las escrituras en cualquier región para las cuentas de base de datos con replicación geográfica en el servicio Azure Cosmos DB. |
Cosmos |
openConnectionsAndInitCaches(CosmosContainerProactiveInitConfig proactiveContainerInitConfig)
Establece el CosmosContainerProactiveInitConfig que permite el calentamiento de cachés y conexiones asociadas a contenedores obtenidos de getCosmosContainerIdentities() a las réplicas obtenidas de las primeras regiones preferidas k donde k se evalúa como getProactiveConnectionRegionsCount(). |
Cosmos |
permissions(List<CosmosPermissionProperties> permissions)
Establece la lista de permisos, que contiene los tokens de recursos necesarios para acceder a los recursos. |
Cosmos |
preferredRegions(List<String> preferredRegions)
Establece las regiones preferidas para las cuentas de base de datos con replicación geográfica. |
Cosmos |
readRequestsFallbackEnabled(boolean readRequestsFallbackEnabled)
Establece si se permite que las lecturas vayan a varias regiones configuradas en una cuenta del servicio Azure Cosmos DB. |
Cosmos |
resourceToken(String resourceToken)
Establece un token de recurso que se usa para realizar la autenticación para acceder al recurso. |
Cosmos |
sessionCapturingOverrideEnabled(boolean sessionCapturingOverrideEnabled)
La captura de sesión está habilitada de forma predeterminada para SESSION. |
Cosmos |
sessionRetryOptions(SessionRetryOptions sessionRetryOptions)
Establece la SessionRetryOptions instancia en el cliente. |
Cosmos |
throttlingRetryOptions(ThrottlingRetryOptions throttlingRetryOptions)
Establece las opciones de directiva de reintento asociadas a la instancia de Document |
Cosmos |
userAgentSuffix(String userAgentSuffix)
establece el valor del sufijo user-agent. |
Métodos heredados de java.lang.Object
Detalles del constructor
CosmosClientBuilder
public CosmosClientBuilder()
Crea una instancia de un nuevo generador de cliente de Cosmos.
Detalles del método
authorizationTokenResolver
public CosmosClientBuilder authorizationTokenResolver(CosmosAuthorizationTokenResolver cosmosAuthorizationTokenResolver)
Establece la resolución de tokens
Parameters:
Returns:
buildAsyncClient
public CosmosAsyncClient buildAsyncClient()
Compila un cliente asincrónico de Cosmos con las propiedades proporcionadas.
Returns:
buildClient
public CosmosClient buildClient()
Compila un cliente de sincronización de Cosmos con las propiedades proporcionadas.
Returns:
clientTelemetryConfig
public CosmosClientBuilder clientTelemetryConfig(CosmosClientTelemetryConfig telemetryConfig)
Devuelve la instancia de configuración de telemetría del cliente para este generador.
Parameters:
Returns:
clientTelemetryEnabled
public CosmosClientBuilder clientTelemetryEnabled(boolean clientTelemetryEnabled)
Establece la marca para habilitar la telemetría de cliente que recopilará periódicamente estadísticas de agregación de operaciones de base de datos, información del sistema como cpu/memoria y la enviará al servicio de supervisión de Cosmos, lo que será útil durante la depuración.
El valor DEFAULT es false que indica que se trata de una característica opcional; de forma predeterminada, no hay ninguna recopilación de telemetría.
Parameters:
Returns:
connectionSharingAcrossClientsEnabled
public CosmosClientBuilder connectionSharingAcrossClientsEnabled(boolean connectionSharingAcrossClientsEnabled)
Permite el uso compartido de conexiones entre varios clientes de Cosmos. El valor predeterminado es 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.
Cuando hay varias instancias del cliente de Cosmos en la misma máquina virtual Java que interactúan con varias cuentas de Cosmos, esta solución permite compartir las conexiones en modo directo, si es posible entre instancias del cliente de Cosmos. Tenga en cuenta que, al establecer esta opción, se usará la configuración de conexión (por ejemplo, configuración de tiempo de espera de socket, configuración de tiempo de espera de inactividad) de la primera instancia del cliente en todas las demás instancias.
Parameters:
Returns:
consistencyLevel
public CosmosClientBuilder consistencyLevel(ConsistencyLevel desiredConsistencyLevel)
Establece el objeto ConsistencyLevel que se va a usar de forma predeterminada, SESSION se usará la coherencia.
Parameters:
Returns:
contentResponseOnWriteEnabled
public CosmosClientBuilder contentResponseOnWriteEnabled(boolean contentResponseOnWriteEnabled)
Establece el valor booleano para devolver solo los encabezados y el código de estado en la respuesta de Cosmos DB en el caso de las operaciones Crear, Actualizar y Eliminar en CosmosItem. Si se establece en false (que es de forma predeterminada), el servicio no devuelve la carga en la respuesta. Reduce la carga de red y CPU al no enviar la carga a través de la red y serializarla en el cliente. Esta característica no afecta al uso de RU para las operaciones de lectura o escritura. De forma predeterminada, esto es false.
Parameters:
Returns:
credential
public CosmosClientBuilder credential(AzureKeyCredential credential)
Establece el objeto AzureKeyCredential que se va a usar.
Parameters:
Returns:
credential
public CosmosClientBuilder credential(TokenCredential credential)
Establece el TokenCredential objeto utilizado para autorizar las solicitudes enviadas al servicio. Consulte la documentación de autenticación e identidad de Azure SDK para Java para más información sobre el uso adecuado del TokenCredential tipo.
Parameters:
Returns:
directMode
public CosmosClientBuilder directMode()
Establece la configuración de conexión DIRECTA predeterminada que se va a usar. De forma predeterminada, el generador se inicializa con directMode()
Returns:
directMode
public CosmosClientBuilder directMode(DirectConnectionConfig directConnectionConfig)
Establece la configuración de conexión DIRECTA que se va a usar. De forma predeterminada, el generador se inicializa con directMode()
Parameters:
Returns:
directMode
public CosmosClientBuilder directMode(DirectConnectionConfig directConnectionConfig, GatewayConnectionConfig gatewayConnectionConfig)
Establece la configuración de conexión DIRECTA que se va a usar. gatewayConnectionConfig: representa la configuración básica que se usará para el cliente de puerta de enlace. Incluso en el modo de conexión directa, algunas de las operaciones de metadatos pasan por el cliente de puerta de enlace, establecer la configuración de conexión de puerta de enlace en esta API no afecta al modo de conexión, que será Directo en este caso.
Parameters:
Returns:
endToEndOperationLatencyPolicyConfig
public CosmosClientBuilder endToEndOperationLatencyPolicyConfig(CosmosEndToEndOperationLatencyPolicyConfig cosmosEndToEndOperationLatencyPolicyConfig)
Establece en CosmosEndToEndOperationLatencyPolicyConfig el cliente
Parameters:
Returns:
endpoint
public CosmosClientBuilder endpoint(String endpoint)
Establece el punto de conexión de Azure Cosmos DB al que se conectará el SDK.
Parameters:
Returns:
endpointDiscoveryEnabled
public CosmosClientBuilder endpointDiscoveryEnabled(boolean endpointDiscoveryEnabled)
Establece la marca para habilitar la detección de puntos de conexión para las cuentas de base de datos con replicación geográfica.
Cuando EnableEndpointDiscovery es true, el SDK detectará automáticamente las regiones de escritura y lectura actuales para asegurarse de que las solicitudes se envían a la región correcta en función de la funcionalidad de la región y de la preferencia del usuario.
El valor predeterminado de esta propiedad es true, lo que indica que la detección de puntos de conexión está habilitada.
Parameters:
Returns:
excludedRegionsSupplier
public CosmosClientBuilder excludedRegionsSupplier(Supplier
Establece un Supplier
Parameters:
CosmosExcludedRegions
instancia de .
Returns:
gatewayMode
public CosmosClientBuilder gatewayMode()
Establece la configuración de conexión de puerta de enlace predeterminada que se va a usar.
Returns:
gatewayMode
public CosmosClientBuilder gatewayMode(GatewayConnectionConfig gatewayConnectionConfig)
Establece la configuración de conexión de puerta de enlace que se va a usar.
Parameters:
Returns:
key
public CosmosClientBuilder key(String key)
Establece una clave maestra o de solo lectura que se usa para realizar la autenticación para acceder al recurso.
Parameters:
Returns:
multipleWriteRegionsEnabled
public CosmosClientBuilder multipleWriteRegionsEnabled(boolean multipleWriteRegionsEnabled)
Establece la marca para habilitar las escrituras en cualquier región para las cuentas de base de datos con replicación geográfica en el servicio Azure Cosmos DB.
Cuando el valor de esta propiedad es true, el SDK dirigirá las operaciones de escritura a las regiones grabables disponibles de la cuenta de base de datos con replicación geográfica. Las regiones grabables se ordenan por la propiedad PreferredRegions. Establecer el valor de la propiedad en true no tiene ningún efecto hasta que EnableMultipleWriteRegions en DatabaseAccount también se establece en true.
El valor DEFAULT es true que indica que las escrituras se dirigen a las regiones grabables disponibles de la cuenta de base de datos con replicación geográfica.
Parameters:
Returns:
openConnectionsAndInitCaches
public CosmosClientBuilder openConnectionsAndInitCaches(CosmosContainerProactiveInitConfig proactiveContainerInitConfig)
Establece el CosmosContainerProactiveInitConfig que permite el calentamiento de cachés y conexiones asociadas a contenedores obtenidos de getCosmosContainerIdentities() a las réplicas obtenidas de las primeras regiones preferidas k donde k se evalúa como getProactiveConnectionRegionsCount().
Usar la CosmosContainerProactiveInitConfigBuilder clase para crear instancias CosmosContainerProactiveInitConfig de la clase
Parameters:
Returns:
permissions
public CosmosClientBuilder permissions(List
Establece la lista de permisos, que contiene los tokens de recursos necesarios para acceder a los recursos.
Parameters:
Returns:
preferredRegions
public CosmosClientBuilder preferredRegions(List
Establece las regiones preferidas para las cuentas de base de datos con replicación geográfica. Por ejemplo, "Este de EE. UU. " como región preferida.
Cuando EnableEndpointDiscovery es true y PreferredRegions no está vacío, el SDK prefiere usar las regiones del contenedor en el orden en que se especifican para realizar operaciones.
Si EnableEndpointDiscovery se establece en false, esta propiedad se omite.
Parameters:
Returns:
readRequestsFallbackEnabled
public CosmosClientBuilder readRequestsFallbackEnabled(boolean readRequestsFallbackEnabled)
Establece si se permite que las lecturas vayan a varias regiones configuradas en una cuenta del servicio Azure Cosmos DB.
El valor DEFAULT es true.
Si no se establece esta propiedad, el valor predeterminado es true para todos los niveles de coherencia distintos de obsolescencia limitada, el valor predeterminado es false para Obsolescencia limitada. 1. #endpointDiscoveryEnabled es true 2. la cuenta de Azure Cosmos DB tiene más de una región
Parameters:
Returns:
resourceToken
public CosmosClientBuilder resourceToken(String resourceToken)
Establece un token de recurso que se usa para realizar la autenticación para acceder al recurso.
Parameters:
Returns:
sessionCapturingOverrideEnabled
public CosmosClientBuilder sessionCapturingOverrideEnabled(boolean sessionCapturingOverrideEnabled)
La captura de sesión está habilitada de forma predeterminada para SESSION. Para otros niveles de coherencia, no es necesario, a menos que necesite enviar solicitudes ocasionalmente con coherencia de sesión mientras el cliente no está configurado en la sesión.
la habilitación de la captura de sesión para el modo de sesión no tiene ningún efecto.
Parameters:
Returns:
sessionRetryOptions
public CosmosClientBuilder sessionRetryOptions(SessionRetryOptions sessionRetryOptions)
Establece la SessionRetryOptions instancia en el cliente.
Esta configuración ayuda a optimizar el comportamiento de reintento asociado a NOT_FOUND / READ_SESSION_NOT_AVAILABLE
escenarios o 404 / 1002
que se producen cuando la coherencia de destino usada por la solicitud es Coherencia de sesión y una solicitud va a una región que no tiene datos suficientes recientes que la solicitud busca.
DECLINACIÓN DE RESPONSABILIDADES: la configuración SessionRetryOptions modificará el comportamiento de reintento para todas las operaciones o cargas de trabajo ejecutadas a través de esta instancia del cliente.
Para cuentas de escritura múltiple:
- Para una solicitud de lectura que vaya a una región de lectura local, es posible optimizar la disponibilidad haciendo que la solicitud se vuelva a intentar en una región de escritura diferente, ya que la otra región de escritura podría tener datos más actualizados.
- Para una solicitud de lectura que vaya a una región de escritura local, podría ayudar a cambiar a otra región de escritura inmediatamente siempre que la región de escritura local no tenga los datos más actualizados.
- En el caso de una solicitud de escritura que vaya a una región de escritura local, podría ayudar a cambiar a otra región de escritura inmediatamente siempre que la región de escritura local no tenga los datos más actualizados.
Para las cuentas de escritura única:
- Si una solicitud de lectura va a una región de lectura local, ayuda a cambiar a la región de escritura más rápido.
- Si una solicitud de lectura va a una región de escritura, la SessionRetryOptions configuración no importa, ya que la región de escritura de una cuenta de escritura tiene los datos más actualizados.
- En el caso de una escritura en una región de escritura en una cuenta de escritura única,
READ_SESSION_NOT_AVAILABLE
los errores no se aplican, ya que la región de escritura siempre tiene la versión más reciente de los datos y todas las escrituras van a la réplica principal de esta región. Por lo tanto, los retrasos de replicación que provocan errores no se aplican aquí.
Acerca de las sugerencias de cambio de región:
- Para priorizar la región local para los reintentos, use la sugerencia . LOCAL_REGION_PREFERRED
- Para mover reintentos a una región diferente o remota más rápido, use la sugerencia . REMOTE_REGION_PREFERRED
Operaciones admitidas:
- Leer
- Consultar
- Crear
- Replace
- Upsert
- Eliminar
- Revisión
- Batch
- En bloque
Parameters:
Returns:
throttlingRetryOptions
public CosmosClientBuilder throttlingRetryOptions(ThrottlingRetryOptions throttlingRetryOptions)
Establece las opciones de directiva de reintento asociadas a la instancia de DocumentClient.
Las propiedades de la clase RetryOptions permiten a la aplicación personalizar las directivas de reintento integradas. Esta propiedad es opcional. Cuando no se establece, el SDK usa los valores predeterminados para configurar las directivas de reintento. Consulte La clase RetryOptions para obtener más detalles.
Parameters:
Returns:
userAgentSuffix
public CosmosClientBuilder userAgentSuffix(String userAgentSuffix)
establece el valor del sufijo user-agent.
Parameters:
Returns:
Se aplica a
Azure SDK for Java