Se você usa o Pub/Sub para publicar mensagens desse tipo de dados, use o gRPC para compactá-los para reduzir os custos de rede antes que o cliente editor envie o solicitação. A compactação do Pub/Sub para gRPC usa o Algoritmo Gzip.
Este documento fornece informações sobre a compactação de mensagens publicadas em um tópico.
Sobre a compactação de mensagens
A proporção de compactação para usar o recurso de compactação do lado do cliente do gRPC é diferente para diferentes clientes de editores e depende dos seguintes fatores:
Quantidade de dados. A taxa de compactação melhora quando o tamanho o payload aumenta de algumas centenas de bytes para muitos kilobytes de dados. As configurações de lote de uma solicitação de publicação decidem a quantidade de dados incluída em cada solicitação. Recomendamos que você ative as configurações em lote com a compactação do gRPC para ter os melhores resultados.
Tipo de dados. Dados baseados em texto, como JSON ou XML, são mais compactáveis em comparação com dados binários, como imagens.
Se o cliente do editor estiver no Google Cloud, use a métrica Bytes enviados (instance/network/sent_bytes_count
) para medir a capacidade de publicação em bytes. Se o editor
cliente está em um aplicativo diferente, você deve usar o
ferramentas específicas do cliente para fazer a medição.
O exemplo de código desta seção mostra um snippet de código de biblioteca de cliente Java que também inclui a compactação do gRPC.
Antes de começar
Antes de configurar o fluxo de trabalho de publicação, faça o seguinte tarefas:
- Saiba mais sobre os temas e o fluxo de trabalho de publicação.
- Crie um tópico.
Funções exigidas
Para receber as permissões necessárias para compactar mensagens,
peça ao administrador para conceder a você o
papel de editor do Pub/Sub (roles/pubsub.publisher
) do IAM no seu tópico.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Você precisa de permissões adicionais para criar ou atualizar tópicos e assinaturas.
Compactar uma mensagem
C++
Antes de tentar esse exemplo, siga as instruções de configuração do C++ em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C++.
Java
Antes de tentar essa amostra, siga as instruções de configuração do Java em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Java.
A seguir
Para saber como configurar opções avançadas de publicação, consulte: