Escolha um tipo de subscrição

Este documento ajuda a escolher o tipo adequado de subscrição do Pub/Sub adequado aos requisitos da sua empresa.

Antes de começar

Tabela de comparação de subscrições do Pub/Sub

A tabela seguinte oferece algumas orientações para escolher o mecanismo de entrega adequado para a sua aplicação:

Funcionalidades suportadas pelas subscrições do Pub/Sub
Exemplo de utilização Extrair subscrição
  • Grande volume de mensagens (GBs por segundo).
  • A eficiência e o débito do processamento de mensagens são fundamentais.
  • Ambientes onde não é viável configurar um ponto final HTTPS público com um certificado SSL não autoassinado.
Subscrição Push
  • Vários tópicos que têm de ser processados pelo mesmo webhook.
  • Subscritores de funções do App Engine Standard e do Cloud Run.
  • Ambientes onde não é viável configurar Google Cloud dependências (como credenciais e a biblioteca de cliente).
Exportar subscrição
  • Grande volume de mensagens que pode ser dimensionado até vários milhões de mensagens por segundo.
  • As mensagens são enviadas diretamente para um Google Cloud recurso sem processamento adicional.
Pontos finais Extraia a subscrição

Qualquer dispositivo na Internet que tenha credenciais autorizadas pode chamar a API Pub/Sub.

Subscrição Push
  • Um servidor HTTPS com um certificado não autoassinado acessível na Web pública.
  • O ponto final de receção pode estar separado da subscrição do Pub/Sub, para que as mensagens de várias subscrições sejam enviadas para um único ponto final.
Exportar subscrição
  • Um conjunto de dados e uma tabela do BigQuery para uma subscrição do BigQuery.
  • Um contentor do Cloud Storage para uma subscrição do Cloud Storage.
Balanceamento de carga Extrair subscrição
  • Vários subscritores podem fazer chamadas pull para a mesma subscrição "partilhada".
  • Cada subscritor recebe um subconjunto de mensagens.
Subscrição de push

Os pontos finais de envio podem ser balanceadores de carga.

Exporte a subscrição

O serviço Pub/Sub equilibra automaticamente a carga.

Configuração Extraia a subscrição

Não é necessária configuração.

Subscrição Push
  • Não é necessária nenhuma configuração para as apps do App Engine no mesmo projeto que o subscritor.
  • A validação dos pontos finais de envio não é necessária na Google Cloud consola.
  • Os pontos finais têm de estar acessíveis através de nomes DNS e ter certificados SSL instalados.
Exportar subscrição
  • Tem de existir um conjunto de dados e uma tabela do BigQuery para a subscrição do BigQuery, configurados com as autorizações adequadas.
  • Tem de existir um contentor do Cloud Storage para a subscrição do Cloud Storage, configurado com as autorizações adequadas.
Controlo do fluxo Extraia a subscrição

O cliente subscritor controla a taxa de entrega. O subscritor pode modificar dinamicamente o prazo de confirmação, permitindo que o processamento de mensagens seja arbitrariamente longo.

Subscrição de push

O servidor do Pub/Sub implementa automaticamente o controlo 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 consegue processar o carregamento da mensagem atual devolvendo um erro HTTP.

Exporte a subscrição

O servidor Pub/Sub implementa automaticamente o controlo de fluxo para otimizar a escrita de mensagens num Google Cloud recurso.

Eficiência e taxa de transferência Extraia a subscrição

Alcança um débito elevado com uma CPU e uma largura de banda baixas, permitindo o fornecimento em lote, as confirmações e o consumo massivamente paralelo. Pode ser ineficiente se a sondagem agressiva for usada para minimizar o tempo de entrega de mensagens.

Subscrição de push

Envia uma mensagem por pedido e limita o número máximo de mensagens pendentes.

Exporte a subscrição

A escalabilidade é processada dinamicamente pelos servidores do Pub/Sub.

Quando usar uma subscrição de exportação

Sem uma subscrição de exportação, precisa de uma subscrição de obtenção ou envio e um subscritor (como o Dataflow) para ler mensagens e escrevê-las num Google Cloud recurso. A sobrecarga da execução de uma tarefa do Dataflow não é necessária quando as mensagens não requerem processamento adicional antes de serem armazenadas.

A exportação de subscrições tem as seguintes vantagens:

  • Implementação simples. Pode configurar uma subscrição de exportação através de um único fluxo de trabalho na consola, na Google Cloud CLI, na biblioteca de cliente ou na API Pub/Sub.

  • Custos baixos. Reduz o custo adicional e a latência de pipelines do Pub/Sub semelhantes que incluem tarefas do Dataflow. Esta otimização de custos é útil para sistemas de mensagens que não requerem processamento adicional antes do armazenamento.

  • Monitorização mínima. As subscrições de exportação fazem parte do serviço Pub/Sub multiinquilino e não requerem a execução de tarefas de monitorização separadas.

  • Flexibilidade. Uma subscrição do BigQuery pode usar o esquema do tópico ao qual está anexada, que não está disponível com o modelo básico do Dataflow para escrever do Pub/Sub para o BigQuery. Da mesma forma, uma subscrição do Cloud Storage oferece opções de processamento em lote de ficheiros configuráveis com base no tamanho do ficheiro e no tempo decorrido, que não são configuráveis no modelo básico do Dataflow para escrever do Pub/Sub para o Cloud Storage.

No entanto, continua a ser recomendado um pipeline do Dataflow para sistemas Pub/Sub onde é necessária alguma transformação de dados antes de os dados serem armazenados numGoogle Cloud recurso, como uma tabela do BigQuery ou um contentor do Cloud Storage.

Para saber como fazer stream de dados do Pub/Sub para o BigQuery com transformação através do Dataflow, consulte o artigo Fazer stream do Pub/Sub para o BigQuery.

Para saber como fazer streaming de dados do Pub/Sub para o Cloud Storage com transformação através do Dataflow, consulte o artigo Fazer streaming de mensagens do Pub/Sub através do Dataflow.

O que se segue?

Compreenda o fluxo de trabalho para cada tipo de subscrição: