Este documento ajuda você a escolher o tipo de assinatura do Pub/Sub adequado aos requisitos de negócios.
Antes de começar
- Saiba mais sobre assinaturas.
Tabela de comparação de assinaturas do Pub/Sub
A tabela a seguir oferece uma orientação para escolher o mecanismo de entrega adequado para seu aplicativo:
Recursos com suporte a assinaturas do Pub/Sub | |
---|---|
Caso de uso |
Assinatura de pull
|
Assinatura de push
|
|
Exportar assinatura
|
|
Endpoints |
Assinatura de pull
Qualquer dispositivo na Internet que tenha credenciais autorizadas pode chamar a API Pub/Sub. |
Assinatura de push
|
|
Exportar assinatura
|
|
Balanceamento de carga |
Assinatura de pull
|
Assinatura de push
Os endpoints de push podem ser balanceadores de carga. |
|
Exportar assinatura
O serviço Pub/Sub balanceia a carga automaticamente. |
|
Configuração |
Assinatura de pull
Não é necessário configurar. |
Assinatura de push
|
|
Exportar assinatura
|
|
Controle de fluxo |
Assinatura de pull
O cliente do assinante controla a taxa de entrega. O assinante pode modificar dinamicamente o prazo de confirmação, o que permite que o processamento da mensagem seja arbitrariamente longo. |
Assinatura de push
O servidor do Pub/Sub implementa automaticamente o controle de fluxo. Não é necessário processar o fluxo de mensagens no lado do cliente. No entanto, é possível indicar que o cliente não pode processar a carga de mensagens atual com a transmissão de um erro HTTP. |
|
Exportar assinatura
O servidor do Pub/Sub implementa automaticamente o controle de fluxo para otimizar a gravação de mensagens em um recurso do Google Cloud. |
|
Eficiência e capacidade |
Assinatura de pull
Consegue alta capacidade com baixo uso de CPU e largura de banda. Para isso, permite entrega em lote, confirmações e consumo paralelo massivo. Pode não ser eficaz se a pesquisa agressiva for usada para minimizar o tempo de entrega da mensagem. |
Assinatura de push
Entrega uma mensagem por solicitação e limita o número máximo de mensagens pendentes. |
|
Exportar assinatura
A capacidade de escalonamento é processada dinamicamente pelos servidores do Pub/Sub. |
Quando usar uma assinatura de exportação
Sem uma assinatura de exportação, você precisa de uma assinatura de pull ou push e de um assinante (como o Dataflow) para ler mensagens e gravá-las em um recurso do Google Cloud. O overhead da execução de um job do Dataflow não é necessário quando as mensagens não precisam de processamento adicional antes de serem armazenadas.
As assinaturas de exportação têm as seguintes vantagens:
Implantação simples. É possível configurar uma assinatura de exportação usando um único fluxo de trabalho no console, na Google Cloud CLI, na biblioteca de cliente ou na API Pub/Sub.
Custos baixos. Reduz o custo e a latência adicionais de pipelines semelhantes do Pub/Sub que incluem jobs do Dataflow. Essa otimização de custo é útil para sistemas de mensagens que não exigem processamento adicional antes do armazenamento.
Monitoramento mínimo. As assinaturas de exportação fazem parte do serviço Pub/Sub multiusuário e não exigem que você execute jobs de monitoramento separados.
Flexibilidade. Uma assinatura do BigQuery pode usar o esquema do tópico a que está vinculada, que não está disponível com o modelo básico do Dataflow para gravação do Pub/Sub no BigQuery. Da mesma forma, uma assinatura do Cloud Storage oferece opções de lote de arquivos configuráveis com base no tamanho do arquivo e no tempo decorrido, que não são configuráveis no modelo básico do Dataflow para gravação do Pub/Sub no Cloud Storage.
No entanto, um pipeline do Dataflow ainda é recomendado para sistemas do Pub/Sub em que alguma transformação de dados é necessária antes que os dados sejam armazenados em um recurso do Google Cloud, como uma tabela do BigQuery ou um bucket do Cloud Storage.
Para saber como transmitir dados do Pub/Sub para o BigQuery com transformação usando o Dataflow, consulte Stream do Pub/Sub para o BigQuery.
Para saber como fazer streaming de dados do Pub/Sub para o Cloud Storage com transformação usando o Dataflow, consulte Fazer streaming de mensagens do Pub/Sub usando o Dataflow.
A seguir
Entenda o fluxo de trabalho de cada tipo de assinatura: