Menu Docs
Página inicial do Docs
/ / /
Scala
/ /

Compressão

Nesta página

  • Especifique a compressão usando a ConnectionString
  • Especificar compressão utilizando MongoClientSettings
  • Dependencies

O driver Scala suporta compressão de mensagens de e para servidores MongoDB . O driver implementa os três algoritmos suportados pelos servidores MongoDB :

  • Snappy: A compressão Snappy pode ser usada ao conectar a servidores MongoDB que executam a versão 3.4 e posterior.

  • zlib: azlib compactação pode ser usada ao se conectar a MongoDB servidores executando a versão 3.6 e posterior.

  • Zstandard: A compactação padrão Z pode ser usada ao se conectar a servidores MongoDB que executam a versão 4.2 e posterior.

O driver negociará qual algoritmo de compressão, se houver, é usado com base nos recursos informados pelo servidor na resposta de comando hello .

Inclua as seguintes declarações de importação:

import org.mongodb.scala._

Para especificar compressão dentro de um ConnectionString, especifique compressores como parte da string de conexão.

O seguinte código especifica o algoritmo de compressão Snappy:

val mongoClient: MongoClient = MongoClient("mongodb://localhost/?compressors=snappy")

O seguinte código especifica o algoritmo de compressão zlib :

val mongoClient: MongoClient = MongoClient("mongodb://localhost/?compressors=zlib")

O seguinte código especifica o algoritmo de compressão padrão Z:

val mongoClient: MongoClient = MongoClient("mongodb://localhost/?compressors=zstd")

O seguinte código especifica vários algoritmos de compressão:

val mongoClient: MongoClient = MongoClient("mongodb://localhost/?compressors=snappy,zlib,zstd")

Em todos os casos, o driver usa o primeiro compressor da lista para o qual o servidor oferece suporte.

Inclua as seguintes declarações de importação:

import org.mongodb.scala._
import scala.collection.JavaConverters._

Para especificar a compressão em uma instância MongoClientSettings , defina a propriedade compressors como uma lista de instâncias MongoCompressor .

O seguinte código especifica o algoritmo de compressão Snappy:

val settings = MongoClientSettings.builder()
.compressorList(List(MongoCompressor.createSnappyCompressor).asJava)
.build()
val client = MongoClient(settings)

O seguinte código especifica o algoritmo de compressão zlib :

val settings = MongoClientSettings.builder()
.compressorList(List(MongoCompressor.createZlibCompressor).asJava)
.build()
val client = MongoClient(settings)

O seguinte código especifica o algoritmo de compressão padrão Z:

val settings = MongoClientSettings.builder()
.compressorList(List(MongoCompressor.createZstdCompressor).asJava)
.build()
val client = MongoClient(settings)

O seguinte código especifica vários algoritmos de compressão:

val settings = MongoClientSettings.builder()
.compressorList(List(MongoCompressor.createSnappyCompressor,
MongoCompressor.createZlibCompressor,
MongoCompressor.createZstdCompressor).asJava)
.build()
val client = MongoClient(settings)

Assim como na configuração que usa a string de conexão, o driver usa o primeiro compressor da lista para o qual o servidor oferece suporte.

Como o JDK não tem suporte integrado para Snappy ou Zstandard, o driver depende das implementações Snappy e Zstandard de código aberto existentes. Veja o repositório snappy-java do Github e o repositório zstd-java do Github para obter detalhes.

Voltar

Autenticação