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 compatíveis com assinaturas do Pub/Sub | |
---|---|
Caso de uso |
Assinatura de pull
|
Assinatura de push
|
|
Exportar assinatura
|
|
Endpoints |
Assinatura de pull
Qualquer dispositivo da Internet com credenciais autorizadas pode para chamar a API Pub/Sub. |
Assinatura de push
|
|
Exportar assinatura
|
|
Balanceamento de carga |
Assinatura 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 pull
O cliente do assinante controla a taxa de entrega. O assinante pode modificar dinamicamente o prazo de confirmação, permitindo o processamento de mensagens seja arbitrariamente longo. |
Assinatura de push
O servidor do Pub/Sub implementa automaticamente o controle de fluxo. Não há necessidade de lidar com 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 pull
Alcança uma alta capacidade com CPU e largura de banda baixas ao permitir a entrega em lote, as confirmações e os modelos e consumo. 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 escalonabilidade é processada dinamicamente pelo Pub/Sub servidores. |
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. A sobrecarga da execução de um job do Dataflow é necessário quando as mensagens não exigir mais processamento antes de serem armazenados.
As assinaturas de exportação têm as seguintes vantagens:
Implantação simples. Você pode configurar uma assinatura de exportação com um um único fluxo de trabalho no console, a Google Cloud CLI, a biblioteca de cliente, ou a API Pub/Sub.
Baixo custo. Reduz o custo e a latência adicionais de pipelines semelhantes do Pub/Sub que incluem jobs do Dataflow. Essa otimização de custos é útil para sistemas de mensagens que não exigem processamento adicional antes do armazenamento.
Monitoramento mínimo. A exportação de assinaturas faz parte do processo serviço do Pub/Sub e não exigem que você execute jobs de monitoramento.
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 aprender a transmitir dados do Pub/Sub para BigQuery com transformação usando o Dataflow consulte Fazer streaming do Pub/Sub para o BigQuery.
Para aprender a transmitir dados do Pub/Sub para Cloud Storage com transformação usando no Dataflow, consulte Faça streaming de mensagens do Pub/Sub usando o Dataflow.
A seguir
Entenda o fluxo de trabalho de cada tipo de assinatura: