Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver de Kotlin Sync
/ /

Comprimir tráfego de rede

Neste guia, você pode aprender como usar o driver Kotlin Sync para habilitar a compactação de rede. O driver fornece uma opção de conexão para comprimir mensagens, o que reduz a quantidade de dados passados pela rede entre o MongoDB e seu aplicação.

O driver é compatível com os seguintes algoritmos de compressão:

  • Snappy

  • zlib

  • Zstandard

Se você especificar vários algoritmos de compressão, o driver selecionará o primeiro na lista compatível com sua instância do MongoDB.

Observação

Os aplicativos que exigem compressão Snappy ou Zstandard devem adicionar dependências explícitas para esses algoritmos. Para saber mais, consulte a seção Dependências do algoritmo de compressão deste guia.

Você pode habilitar a compressão para a conexão com sua instância do MongoDB especificando os algoritmos de uma das seguintes maneiras:

  • Encadeie o método compressorList() ao método MongoClientSettings.builder().

  • Use o parâmetro compressors em seu URI de conexão.

Os exemplos a seguir demonstram como especificar todos os compressores disponíveis ao conectar ao MongoDB. Selecione a aba MongoClientSettings ou Connection URI para ver a sintaxe correspondente :

val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString("<connection string>"))
.compressorList(
listOf(
MongoCompressor.createSnappyCompressor(),
MongoCompressor.createZlibCompressor(),
MongoCompressor.createZstdCompressor())
)
.build()
val mongoClient = MongoClient.create(settings)
val uri = ConnectionString("mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd")
val mongoClient = MongoClient.create(uri)

Se você especificar zlib como um dos algoritmos de compressão, também poderá usar a propriedade MongoCompressor.LEVEL para especificar um nível de compressão. Esta opção aceita um valor inteiro entre -1 e 9:

  • -1: compactação padrão (geralmente 6)

  • 0: sem compressão

  • 1: velocidade mais rápida, mas menor compactação

  • 9: a melhor compactação, mas a velocidade mais lenta

Os exemplos seguintes demonstram como especificar um nível de compressão para o compressor zlib. Selecione a aba MongoClientSettings ou Connection URI para ver a sintaxe correspondente:

val zlib = MongoCompressor.createZlibCompressor()
val settings = MongoClientSettings.builder()
.applyConnectionString(ConnectionString(uri))
.compressorList(listOf(zlib.withProperty(MongoCompressor.LEVEL, <level>)))
.build()
val mongoClient = MongoClient.create(settings)
val uri = "mongodb://<db_username>:<db_password>@<hostname>:<port>/?" +
"compressors=zlib" +
"zlibCompressionLevel=<zlib compression level>"
val mongoClient = MongoClient.create(uri)

O JDK suporta nativamente a compressão zlib. No entanto, Snappy e Zstandard dependem de implementações Java de código aberto. Para saber mais sobre essas implementações, consulte os seguintes repositórios do Github:

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

Opções de conexão

Nesta página