Se estiver a usar o Pub/Sub para publicar mensagens que representam uma grande quantidade de dados, pode usar o gRPC para comprimir os dados e poupar custos de rede antes de o cliente publicador enviar o pedido de publicação. A compressão do Pub/Sub para gRPC usa o algoritmo Gzip.
Este documento fornece informações sobre a compressão de mensagens publicadas num tópico.
Acerca da compressão de mensagens
A taxa de compressão para usar a funcionalidade de compressão do lado do cliente do gRPC é diferente para diferentes clientes publicadores e depende dos seguintes fatores:
Quantidade de dados. A taxa de compressão melhora quando o tamanho da carga útil aumenta de algumas centenas de bytes para muitos kilobytes de dados. As definições de lote de um pedido de publicação determinam a quantidade de dados incluídos em cada pedido de publicação. Recomendamos que ative as definições de lote em conjunto com a compressão gRPC para obter os melhores resultados.
Tipo de dados. Os dados baseados em texto, como JSON ou XML, são mais compressíveis em comparação com dados binários, como imagens.
Se o seu cliente publicador estiver ativado Google Cloud, pode usar a métrica Bytes enviados (instance/network/sent_bytes_count
) para medir a taxa de transferência de publicação em bytes. Se o seu cliente de publicador estiver numa aplicação diferente, tem de usar as ferramentas específicas do cliente para fazer a medição.
O exemplo de código nesta secção mostra um fragmento de código de biblioteca cliente Java de exemplo que também inclui a compressão gRPC.
Antes de começar
Antes de configurar o fluxo de trabalho de publicação, certifique-se de que concluiu as seguintes tarefas:
- Saiba mais sobre os tópicos e o fluxo de trabalho de publicação.
- Crie um tópico.
Funções necessárias
Para receber as autorizações de que
precisa para comprimir mensagens,
peça ao seu administrador para lhe conceder a
função de IAM Publicador do Pub/Sub (roles/pubsub.publisher
)
no seu tópico.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Precisa de autorizações adicionais para criar ou atualizar tópicos e subscrições.
Comprima uma mensagem
C++
Antes de experimentar este exemplo, siga as instruções de configuração do C++ no artigo Início rápido: usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API C++ do Pub/Sub.
Java
Antes de experimentar este exemplo, siga as instruções de configuração do Java no artigo Início rápido: usar bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Java do Pub/Sub.
O que se segue?
Para saber como configurar opções de publicação avançadas, consulte o seguinte: