Escolher o Pub/Sub ou o Cloud Tasks

Pode usar o Cloud Tasks e o Pub/Sub para implementar a transmissão de mensagens e a integração assíncrona. Embora sejam conceitualmente semelhantes, cada uma foi concebida para um conjunto diferente de exemplos de utilização. Esta página ajuda a escolher o produto certo para o seu exemplo de utilização.

Principais diferenças

A principal diferença entre o Pub/Sub e o Cloud Tasks reside na noção de invocação implícita vs. explícita.

O Pub/Sub tem como objetivo separar os publicadores de eventos e os subscritores desses eventos. Os publicadores não precisam de saber nada sobre os respetivos subscritores. Por conseguinte, o Pub/Sub não dá aos publicadores controlo sobre o envio das mensagens, exceto a garantia de envio. Desta forma, o Pub/Sub suporta a invocação implícita: um publicador faz com que os subscritores sejam executados implicitamente publicando um evento.

Por outro lado, o Cloud Tasks destina-se à invocação explícita, em que o publicador mantém o controlo total da execução. Em particular, um publicador especifica um ponto final onde cada mensagem deve ser entregue.

Em geral, o Cloud Tasks é adequado para exemplos de utilização em que um produtor de tarefas precisa de adiar ou controlar o tempo de execução de um webhook ou uma chamada de procedimento remoto específicos. O Pub/Sub é ideal para padrões de ingestão e distribuição de dados de eventos mais gerais, em que se pode sacrificar algum grau de controlo sobre a execução.

Comparação detalhada de funcionalidades

Funcionalidade Cloud Tasks Cloud Pub/Sub
Envie através de webhooks Sim Sim
Garantia de entrega pelo menos uma vez Sim Sim
Voltas a tentar configuráveis Sim Sim
Deduplicação da criação de tarefas Sim Não
Envio agendado Sim Não
Entrega pedida Não. A ordem das tarefas na fila é preservada com base no melhor esforço. Sim, com teclas de ordenação
Controlos de taxa explícitos Sim Os clientes de subscrição de obtenção podem implementar o controlo de fluxo
Extraia através da API Não Sim
Inserção em lote Não Sim
Vários controladores/subscritores por mensagem Não Sim
Retenção de tarefas/mensagens 30 dias Até 31 dias
Tamanho máximo da tarefa/mensagem 1MB 10MB
Taxa de fornecimento máxima 500 qps/fila Sem limite superior
Disponibilidade geográfica Regional Global
Duração máxima do processamento do controlador/subscritor de envio 30 minutos (HTTP)
10 minutos (dimensionamento automático do App Engine Standard)
24 horas (dimensionamento manual ou básico do App Engine Standard)
60 minutos (App Engine Flexible)
10 minutos para operações de envio
Número de filas/subscrições por projeto 1000/projeto, mais disponível através do pedido de aumento da quota 10 000/projeto