Se você estiver usando o Pub/Sub para publicar mensagens que representam muitos dados, use o gRPC para compactar seus dados e economizar custos de rede antes que o cliente do editor envie a solicitação de publicaçã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 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ída em cada solicitação. Recomendamos ativar 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 cliente
do 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 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 de publicação avançadas, consulte: