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
Grande volume de mensagens (GBs por segundo).
A eficiência e a capacidade do processamento da mensagem são fundamentais.
Ambientes em que não é viável configurar um ponto de extremidade HTTPS público com um certificado SSL não autoassinado.
Assinatura de push
Vários tópicos que precisam ser processados pelo mesmo webhook.
Assinantes do ambiente padrão do App Engine e do Cloud Run.
Ambientes em que não é viável configurar as dependências do Google Cloud , como
credenciais e a biblioteca de cliente.
Exportar assinatura
Grande volume de mensagens que pode ser escalonado para vários
milhões por segundo.
As mensagens são enviadas diretamente para um recurso Google Cloud
sem nenhum processamento adicional.
Endpoints
Assinatura de pull
Qualquer dispositivo na Internet que tenha credenciais autorizadas pode
chamar a API Pub/Sub.
Assinatura de push
Um servidor HTTPS com certificado não autoassinado acessível na
Web pública.
O endpoint de recebimento pode ser separado da assinatura do Pub/Sub, para que as mensagens de várias assinaturas sejam enviadas para um único endpoint.
Exportar assinatura
Um conjunto de dados e uma tabela do BigQuery para uma assinatura do BigQuery.
Um bucket do Cloud Storage para uma assinatura do Cloud Storage.
Balanceamento de carga
Assinatura de pull
Vários assinantes podem fazer chamadas de pull para a mesma
assinatura "compartilhada".
Cada assinante recebe um subconjunto de mensagens.
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
Não é necessário configurar aplicativos do App Engine no mesmo projeto que o assinante.
A verificação de endpoints de push não é necessária no
Google Cloud console.
Os endpoints precisam ser acessíveis usando nomes DNS e ter certificados SSL instalados.
Exportar assinatura
Um conjunto de dados e uma tabela do BigQuery precisam existir para a assinatura do BigQuery, configurada com as permissões adequadas.
Um bucket do Cloud Storage precisa existir para a assinatura do Cloud Storage, configurada com as permissões adequadas.
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 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 massivo
paralelo. 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 Google Cloud recurso.
O overhead de 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 CLI Google Cloud , 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á anexada, 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
recursoGoogle Cloud , como uma tabela do BigQuery ou
um bucket do Cloud Storage.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-17 UTC."],[],[],null,["# Choose a subscription type\n\nThis document helps you choose the appropriate type of Pub/Sub\nsubscription suited to your business requirements.\n\nBefore you begin\n----------------\n\n- Learn about [subscriptions](/pubsub/docs/subscription-overview).\n\nPub/Sub subscription comparison table\n-------------------------------------\n\nThe following table offers some guidance in choosing the appropriate delivery\nmechanism for your application:\n\nWhen to use an export subscription\n----------------------------------\n\nWithout an export subscription, you need a pull or push\nsubscription and a subscriber (such as Dataflow) to\nread messages and write them to a Google Cloud resource.\nThe overhead of running a Dataflow job is\nnot necessary when messages don't\nrequire additional processing before being stored.\n\nExport subscriptions have the following advantages:\n\n- **Simple deployment.** You can set up an export subscription through a\n single workflow in the console, Google Cloud CLI, client library,\n or Pub/Sub API.\n\n- **Low costs.** Reduces the additional cost and latency of similar\n Pub/Sub pipelines that include Dataflow jobs.\n This cost optimization is useful for messaging systems that don't require\n additional processing before storage.\n\n- **Minimal monitoring.** Export subscriptions are part of the multi-tenant\n Pub/Sub service and don't require you to run separate\n monitoring jobs.\n\n- **Flexibility**. A BigQuery subscription can use the\n schema of the topic to which it is attached, which is not available with\n the basic Dataflow template for writing from\n Pub/Sub to BigQuery. Similarly,\n a Cloud Storage subscription offers configurable file batching options\n based on file size and elapsed time, which are not configurable in the\n basic Dataflow template for writing from\n Pub/Sub to Cloud Storage.\n\nHowever, a Dataflow pipeline is still\nrecommended for Pub/Sub systems where some data\ntransformation is required before the data is stored in a\nGoogle Cloud resource such as a BigQuery table or\nCloud Storage bucket.\n\nTo learn how to stream data from Pub/Sub to\nBigQuery with transformation by using Dataflow,\nsee [Stream from Pub/Sub to BigQuery](/dataflow/docs/tutorials/dataflow-stream-to-bigquery).\n\nTo learn how to stream data from Pub/Sub to\nCloud Storage with transformation by using\nDataflow, see\n[Stream messages from Pub/Sub by using Dataflow](/pubsub/docs/stream-messages-dataflow).\n\nWhat's next\n-----------\n\nUnderstand the workflow for each subscription type:\n\n- [Pull](/pubsub/docs/pull)\n\n- [Push](/pubsub/docs/push)\n\n- [BigQuery](/pubsub/docs/bigquery)\n\n- [Cloud Storage](/pubsub/docs/cloudstorage)"]]