Se você estiver usando o Pub/Sub para publicar mensagens que equivalem a muitos dados, use o gRPC para compactar os dados e economizar custos de rede antes que o cliente editor envie a solicitação de publicação. A compactação do Pub/Sub para gRPC usa o algoritmo Gzip.
Neste documento, você encontra informações sobre a compactação de mensagens publicadas em um tópico.
Sobre a compactação de mensagens
A taxa de compactação para usar o recurso de compactação do lado do cliente gRPC é diferente para vários clientes editores e depende dos seguintes fatores:
Quantidade de dados. A taxa de compactação melhora quando o tamanho do 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ídos em cada solicitação. Recomendamos que você ative as configurações de lote em conjunto com a compactação gRPC para ter os melhores resultados.
Tipo de dados. Dados baseados em texto, como JSON ou XML, são mais compactáveis do que dados binários, como imagens.
Se o cliente 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 cliente
editor estiver em um aplicativo diferente, use as
ferramentas específicas do cliente para fazer a medição.
O exemplo de código nesta 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, verifique se você concluiu as seguintes tarefas:
- Saiba mais sobre 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
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: