Se você estiver usando o Pub/Sub para publicar mensagens que tenham muitos dados, poderá usar 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 uso do recurso de compactação do lado do cliente gRPC é diferente para diferentes clientes do editor 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 em lote de uma solicitação de publicação decidem a quantidade de dados que será incluída em cada solicitação de publicação. Recomendamos ativar as configurações de lote em conjunto com a compactação do gRPC para conseguir 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 editor estiver em um aplicativo diferente, será necessário usar as ferramentas específicas do cliente para fazer a medição.
O exemplo de código nesta seção apresenta um exemplo de snippet de código da biblioteca de cliente Java que também inclui compactação gRPC.
Antes de começar
Antes de configurar o fluxo de trabalho de publicação, conclua as seguintes tarefas:
- Saiba mais sobre tópicos 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 que conceda a você o papel do IAM de
Editor do Pub/Sub (roles/pubsub.publisher
) no tópico.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
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: