Especificar opções de conexão
Nesta página
Visão geral
Esta seção descreve as opções de conexão e autenticação do MongoDB disponíveis no driver do Kotlin Sync. Você pode configurar sua conexão definindo opções no URI de conexão ou em uma instância MongoClientSettings
.
Definir opções no URI de conexão
Se você passar um URI de conexão para o método MongoClient.create()
, poderá incluir opções de conexão na string de caracteres como pares <name>=<value>
. No exemplo a seguir, o URI de conexão contém a opção connectTimeoutMS
com um valor de 60000
e a opção tls
com um valor de true
:
val uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true" val mongoClient = MongoClient.create(uri)
Definir opções em MongoClientSettings
Você pode definir opções de conexão em uma instância MongoClientSettings
usando métodos da classe MongoClientSettings.Builder
e, em seguida, passar o objeto de configurações para o método MongoClient.create()
.
Configurar a conexão dessa forma facilita a alteração das configurações no tempo de execução e pode ajudá-lo a detectar erros no tempo de compilação.
O exemplo a seguir mostra como especificar seu destino de conexão e definir outras opções ao criar uma instância do MongoClientSettings
:
val settings = MongoClientSettings.builder() .applyToClusterSettings { builder -> builder.hosts(listOf(ServerAddress("localhost", 27017))) } .applyToSocketSettings { builder -> builder.connectTimeout(60000, TimeUnit.MILLISECONDS) } .applyToSslSettings { builder -> builder.enabled(true) } .build() val mongoClient = MongoClient.create(settings)
Se preferir fornecer uma string de conexão em vez de especificar o nome do host e a porta, você poderá usar o método applyConnectionString()
e, em seguida, definir outras opções usando métodos de construtor, conforme mostrado no código a seguir:
val uri = "<connection string>" val settings = MongoClientSettings.builder() .applyConnectionString(ConnectionString(uri)) .applyToSocketSettings { builder -> builder.connectTimeout(60000, TimeUnit.MILLISECONDS) } .applyToSslSettings { builder -> builder.enabled(true) } .build() val mongoClient = MongoClient.create(settings)
Opções de conexão
As seções a seguir descrevem as opções de conexão disponíveis no driver Kotlin Sync. Cada opção mostra o par opção-valor que você pode usar em um URI de conexão e, se disponível, o método do driver para defini-lo em uma instância MongoClientSettings
.
Compactação de rede
Opção de conexão | Descrição |
---|---|
compressors | The preferred compression types, in order, for wire-protocol messages sent to
or received from the server. The driver uses the first of these compression types
that the server supports. Data Type: comma-delimited string MongoClientSettings: compressorList(listOf(<MongoCompressor>)) Connection URI: compressors=snappy,zstd,zlib |
zlibCompressionLevel | The compression level for zlib to use. This option accepts
an integer value between -1 and 9 , corresponding to the
following settings:- -1: (Default). zlib uses its default compression level (usually 6 ).- 0: No compression. - 1: Fastest speed but lowest compression. - 9: Best compression but slowest speed. Data Type: integer Default: -1 MongoClientSettings: compressorList(listOf(zlib.withProperty(MongoCompressor.LEVEL, 3))) Connection URI: zlibCompressionLevel=3 |
Tempo limite
Opção de conexão | Descrição | |||
---|---|---|---|---|
connectTimeoutMS | The time in milliseconds to attempt a connection before timing out. Data Type: integer Default: 10000 MongoClientSettings:
Connection URI: timeoutMs=10000 | |||
socketTimeoutMS | The time in milliseconds to attempt a send or receive on a
connection before the attempt times out. Data Type: integer Default: no timeout MongoClientSettings:
Connection URI: socketTimeoutMS=5000 |
Seleção do Servidor
Opção de conexão | Descrição | |||
---|---|---|---|---|
serverSelectionTimeoutMS | The maximum amount of time, in milliseconds, the driver waits
for server selection to succeed before throwing an
exception. Data Type: integer Default: 30000 MongoClientSettings:
Connection URI: serverSelectionTimeoutMS=30000 |
Autenticação
Opção de conexão | Descrição | |||
---|---|---|---|---|
authMechanism | The mechanism that the Kotlin Sync driver uses to authenticate
the application. Data Type: string Default: "SCRAM-SHA-256" when connecting to MongoDB
v4.0 or laterMongoClientSettings:
Connection URI: authMechanism=SCRAM-SHA-256 | |||
authMechanismProperties | Options specific to the authentication mechanism. This option
isn't needed for all authentication mechanisms. Data Type: string Connection URI: authMechanismProperties=AWS_SESSION_TOKEN:12435 | |||
authSource | The database to authenticate against. Data Type: string Default: "admin" Connection URI: authSource=admin | |||
nome de usuário | The username for authentication. When this option is included in a connection
URI, you must percent-encode it. Data Type: string Connection URI: username=my+user | |||
Senha | The password for authentication. When this option is included in a connection
URI, you must percent-encode it. Data Type: string Connection URI: password=strong+password |
Operações de leitura e escrita
Para saber mais sobre como se conectar a diferentes tipos de sistemas do MongoDB , consulte o guia Escolha um destino de conexão .
Opção de conexão | Descrição | |||
---|---|---|---|---|
replicaSet | Specifies the name of the replica set to connect to. Data Type: string Connection URI: replicaSet=myRS | |||
directConnection | Whether to connect only to the primary member of the replica set. Data Type: boolean Default: false MongoClientSettings:
Connection URI: directConnection=true | |||
readPreference | Specifies the client's read preference. For more information,
see Read Preference in the
Server manual. Data Type: string Default: primary MongoClientSettings: readPreference(ReadPreference.primary()) Connection URI: readPreference=primary | |||
readConcern | Specifies the client's read concern. For more information, see
Read Concern in the Server
manual. Data Type: string MongoClientSettings: readConcern(ReadConcern.MAJORITY) Connection URI: readConcern=majority | |||
writeConcern | Specifies the client's write concern. For more information, see
Write Concern in the
Server manual. Data Type: string MongoClientSettings: writeConcern(WriteConcern.MAJORITY) Connection URI: writeConcern=majority | |||
localThresholdMS | The latency window for a replica-set member's eligibility. If a member's
round trip ping takes longer than the fastest server's round-trip ping
time plus this value, the server isn't eligible for selection. Data Type: integer Default: 15 MongoClientSettings:
Connection URI: localThresholdMS=35 |
Informações adicionais
Para ver uma lista completa de opções de conexão, consulte Connection strings no manual do servidor.
Documentação da API
Para saber mais sobre as aulas e os métodos mencionados neste guia, consulte a seguinte documentação da API: