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 |