Visão geral
Os drivers do MongoDB podem compactar as mensagens enviadas e recebidas do MongoDB Server. Isso reduz a quantidade de dados transferidos para cada operação. A compressão pode melhorar o desempenho em redes restritas e reduzir os custos de transferência de dados associados à execução do MongoDB Atlas.
A compressão opera no nível do protocolo de conexão , portanto, ela se aplica a todas as operações que seu aplicação executa. Se você especificar mais de um algoritmo, o driver usará o primeiro algoritmo da sua lista que o MongoDB Server também suportará.
Algoritmos de compressão
Os drivers do MongoDB suportam os seguintes algoritmos de compressão:
Benefícios da compressão de rede
MongoDB Atlas charges for data transferred across cloud regions, cloud providers, and between your infrastructure and MongoDB Atlas. Network compression reduces the amount of data that your application sends and receives, which can lower these data transfer costs. To learn more about pricing, see Data Transfer Costs.
A compactação de rede também gera benefícios de produtividade. As mensagens compactadas levam menos tempo para serem transferidas pela rede, o que pode melhorar o tempo de resposta do seu aplicativo. A compactação também reduz a largura de banda usada pelo tráfego do MongoDB , o que deixa mais largura de banda disponível para outros aplicativos na mesma rede.
Ao escolher um algoritmo de compressão, considere as seguintes diretrizes:
Use o Zstandard para obter um equilíbrio entre eficiência de compactação e uso de recursos. O Zstandard é uma boa opção padrão para a maioria dos aplicativos.
Use o Snappy para aplicativos sensíveis à latência que exigem sobrecarga computacional mínima.
Use o Zlib para ampla compatibilidade entre drivers e ambientes MongoDB .
Dica
Monitore o uso da CPU
Compression trades network bandwidth for CPU usage. After you enable network compression, monitor your application's CPU utilization to confirm that the trade-off benefits your workload. To learn more about these trade-offs, see the CPU Utilization and Network Compression in MongoDB blog post.
Compatibilidade de versão
A tabela a seguir lista o driver mínimo suportado e a versão do MongoDB Server para cada algoritmo de compressão:
Habilitar compressão de rede
Para habilitar a compactação de rede para sua conexão do MongoDB , crie o driver C com as dependências necessárias e especifique os algoritmos de compactação que você deseja usar.
Instalar dependências
A tabela a seguir lista cada algoritmo e a dependência necessária, se houver:
Compression Algorithm | Dependência |
|---|---|
Snappy | Instale a biblioteca Snappy. Para visualizar as instruções de instalação, consulte o repositório snappy GitHub. |
zlib | Nenhum. O driver inclui o Zlib por padrão. |
Zstandard | Instale a biblioteca Zstandard. Para visualizar as instruções de instalação, consulte o repositório zstd do GitHub. |
Especifique algoritmos de compactação
Você pode habilitar a compressão para a conexão com sua instância do MongoDB especificando os algoritmos de uma das seguintes maneiras:
Adicione o parâmetro
compressorsà sua string de conexãoDefina os compressores em uma estrutura
mongoc_uri_t
Selecione a aba Connection String ou URI Option para visualizar um exemplo que especifica todos os compressores disponíveis:
zlibNível de compactação
Ao usar o algoritmo Zlib, você pode especificar um nível de compressão de -1 a 9. Níveis mais baixos geralmente fornecem compressão mais rápida com uma taxa de compressão menor, e níveis mais altos fornecem compressão mais lenta com uma taxa de compressão mais alta.
Selecione a aba Connection String ou URI Option para visualizar um exemplo que especifica um nível de compressão para o compressor zlib:
Documentação da API
Para obter mais informações sobre os tipos e funções usadas nesta página, consulte a seguinte documentação da API: