Visão geral
Drivers do MongoDB podem compactar as mensagens enviadas para e recebidas do MongoDB Server. Isso reduz a quantidade de transferência de dados para cada operação. A compactação pode melhorar o desempenho em redes restritas e reduzir o custo de transferência de dados associado à execução do MongoDB Atlas.
A compactação opera no nível do wire protocol, portanto, aplica-se a todas as operações que seu aplicativo executa. Se você especificar mais de um algoritmo, o driver usará o primeiro algoritmo da sua lista que o MongoDB Server também suporta.
Algoritmos de compressão
Os drivers do MongoDB suportam os seguintes algoritmos de compactação:
Benefícios da compactaçã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 traz benefícios de produtividade. Mensagens compactadas levam menos tempo para serem transferidas pela rede, o que pode melhorar os tempos de resposta do seu aplicativo. A compactação também reduz a largura de banda que o tráfego do MongoDB utiliza, o que deixa mais largura de banda disponível para outros aplicativos na mesma rede.
Ao escolher um algoritmo de compactação, considere as seguintes diretrizes:
Use o Zstandard para um equilíbrio entre eficiência de compactação e uso de recursos. O Zstandard é uma boa escolha padrão para a maioria dos aplicativos.
Use Snappy para aplicativos sensíveis à latência que exigem sobrecarga computacional mínima.
Use o zlib para ampla compatibilidade entre drivers e ambientes do MongoDB.
Dica
Monitorar 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 compatível e a versão do MongoDB Server para cada algoritmo de compactação:
Habilitar compressão de rede
Para habilitar a compactação de rede para sua conexão MongoDB, instale as dependências necessárias e especifique os algoritmos de compactação que deseja usar.
Instalar dependências
A tabela a seguir lista cada algoritmo e as dependências necessárias, se houver:
Algoritmo de compactação | Dependencies |
|---|---|
Snappy | Adicione o pacote |
zlib | none |
Zstandard | Adicione o pacote |
Especifique algoritmos de compactação
Você pode ativar a compressão para a conexão com sua instância do MongoDB especificando os algoritmos de uma de duas maneiras:
Adicionar o parâmetro à sua connection string.
Especificando a opção
compressorsem seuMongoClientOptions.
Para habilitar a compactação usando a string de conexão, adicione o parâmetro compressors na string de conexão. Você pode especificar um ou mais algoritmos de compressão, separando-os por vírgulas:
const uri = "mongodb+srv://<user>:<password>@<cluster-url>/?compressors=snappy,zlib"; const client = new MongoClient(uri);
Para habilitar a compressão usando as MongoClientOptions, passe a opção compressors e o algoritmo de compressão que você deseja usar. Você pode especificar um ou mais algoritmos de compressão, separando-os com vírgulas:
const uri = "mongodb+srv://<user>:<password>@<cluster-url>"; const client = new MongoClient(uri, { compressors: ["snappy"] });
Especifique os algoritmos de compressão usando as seguintes strings:
"snappy" para compressão Snappy
"zlib" para compressão zlib