O que é o Pub/Sub?

O Pub/Sub é um serviço de mensagens assíncrono e escalável que desassocia os serviços que produzem mensagens dos serviços que processam essas mensagens.

O Pub/Sub permite que os serviços comuniquem de forma assíncrona, com latências normalmente na ordem dos 100 milissegundos.

O Pub/Sub é usado para pipelines de análise de streaming e integração de dados para carregar e distribuir dados. É igualmente eficaz como um middleware orientado para mensagens para integração de serviços ou como uma fila para paralelizar tarefas.

O Pub/Sub permite-lhe criar sistemas de produtores e consumidores de eventos, denominados publicadores e subscritores. Os publicadores comunicam com os subscritores de forma assíncrona através da transmissão de eventos, em vez de chamadas de procedimentos remotos (RPCs) síncronas.

Os publicadores enviam eventos para o serviço Pub/Sub, independentemente de como ou quando estes eventos devem ser processados. Em seguida, o Pub/Sub envia eventos a todos os serviços que reagem a eles. Nos sistemas que comunicam através de RPCs, os publicadores têm de aguardar que os subscritores recebam os dados. No entanto, a integração assíncrona no Pub/Sub aumenta a flexibilidade e a robustez do sistema geral.

Para começar a usar o Pub/Sub, consulte o Início rápido com a Google Cloud consola. Para uma introdução mais abrangente, consulte o artigo Criar um sistema de mensagens Pub/Sub.

Exemplos de utilização comuns

  • Ingerir interações dos utilizadores e eventos do servidor. Para usar eventos de interação do utilizador de apps de utilizadores finais ou eventos de servidor do seu sistema, pode encaminhá-los para o Pub/Sub. Em seguida, pode usar uma ferramenta de processamento de streams, como o Dataflow, que envia os eventos para bases de dados. Exemplos de bases de dados deste tipo são o BigQuery, o Bigtable e o Cloud Storage. O Pub/Sub permite-lhe recolher eventos de vários clientes em simultâneo.
  • Distribuição de eventos em tempo real. Os eventos, brutos ou processados, podem ser disponibilizados a várias aplicações na sua equipa e organização para processamento em tempo real. O Pub/Sub suporta um "barramento de eventos empresarial" e padrões de design de aplicações orientados por eventos. O Pub/Sub permite-lhe integrar-se com muitos sistemas que exportam eventos para o Pub/Sub.
  • Replicar dados entre bases de dados. O Pub/Sub é usado frequentemente para distribuir eventos de alteração de bases de dados. Estes eventos podem ser usados para criar uma vista do estado da base de dados e do histórico de estados no BigQuery e noutros sistemas de armazenamento de dados.
  • Processamento e fluxos de trabalho paralelos. Pode distribuir eficientemente muitas tarefas entre vários trabalhadores usando mensagens do Pub/Sub para comunicar com os trabalhadores. Alguns exemplos destas tarefas são: comprimir ficheiros de texto, enviar notificações por email, avaliar modelos de IA e reformatar imagens.
  • Barramento de eventos empresarial. Pode criar um barramento de partilha de dados em tempo real ao nível da empresa, distribuindo eventos empresariais, atualizações de bases de dados e eventos de estatísticas em toda a sua organização.
  • Streaming de dados a partir de aplicações, serviços ou dispositivos de IoT. Por exemplo, uma aplicação SaaS pode publicar um feed de eventos em tempo real. Em alternativa, um sensor residencial pode transmitir dados para o Pub/Sub para utilização noutros Google Cloud produtos através de um pipeline de tratamento de dados.
  • Atualizar caches distribuídas. Por exemplo, uma aplicação pode publicar eventos de invalidação para atualizar os IDs de objetos que foram alterados.
  • Balanceamento de carga para fiabilidade. Por exemplo, as instâncias de um serviço podem ser implementadas no Compute Engine em várias zonas, mas subscrever um tópico comum. Quando o serviço falha numa zona, as outras podem assumir a carga automaticamente.

Comparar o Pub/Sub com outras tecnologias de mensagens

O Pub/Sub combina a escalabilidade horizontal do Apache Kafka e do Pulsar com funcionalidades encontradas no middleware de mensagens, como o Apache ActiveMQ e o RabbitMQ. Alguns exemplos destas funcionalidades são as filas de mensagens não entregues e a filtragem.

Outra funcionalidade que o Pub/Sub adota do middleware de mensagens é o paralelismo por mensagem, em vez de mensagens baseadas em partições. O Pub/Sub "aluga" mensagens individuais a clientes subscritores e, em seguida, monitoriza se uma determinada mensagem é processada com êxito.

Por outro lado, outros sistemas de mensagens escaláveis horizontalmente usam partições para a escalabilidade horizontal. Isto força os subscritores a processarem as mensagens em cada partição por ordem e limita o número de clientes concorrentes ao número de partições. O processamento por mensagem maximiza o paralelismo das aplicações de subscrição e ajuda a garantir a independência do publicador e do subscritor.

Compare a comunicação entre serviços e entre serviços e clientes

O Pub/Sub destina-se à comunicação entre serviços e não à comunicação com clientes de utilizadores finais ou de IoT. Outros padrões são mais bem suportados por outros produtos:

Pode usar uma combinação destes serviços para criar padrões de cliente -> serviços -> base de dados. Por exemplo, consulte o tutorial Streaming de mensagens Pub/Sub através de WebSockets.

Integrações

O Pub/Sub tem muitas integrações com outros Google Cloud produtos para criar um sistema de mensagens com todas as funcionalidades:

  • Processamento de streams e integração de dados. Suportado pelo Dataflow, incluindo modelos do Dataflow e SQL, que permitem o processamento e a integração de dados no BigQuery e nos data lakes no Cloud Storage. Os modelos do Dataflow para mover dados do Pub/Sub para o Cloud Storage, o BigQuery e outros produtos estão disponíveis nas IU do Pub/Sub e do Dataflow naGoogle Cloud consola. A integração com o Apache Spark, particularmente quando gerido com o Dataproc, também está disponível. A composição visual de pipelines de integração e processamento executados no Spark + Dataproc pode ser realizada com o Data Fusion.
  • Monitorizar, alertar e registar. Apoiado por produtos de monitorização e registo.
  • Autenticação e IAM. O Pub/Sub baseia-se numa autenticação OAuth padrão usada por outros Google Cloud produtos e suporta o IAM detalhado, o que permite o controlo de acesso para recursos individuais.
  • APIs. O Pub/Sub usa tecnologias de API de serviço gRPC e REST padrão, juntamente com bibliotecas cliente para vários idiomas.
  • Acionadores, notificações e webhooks. O Pub/Sub oferece o fornecimento de mensagens baseado em push como pedidos HTTP POST para webhooks. Pode implementar a automatização do fluxo de trabalho através das Cloud Functions ou de outros produtos sem servidor.
  • Orquestração. O Pub/Sub pode ser integrado em fluxos de trabalho sem servidor de vários passos de forma declarativa. A orquestração de grandes volumes de dados e estatísticas é frequentemente feita com o Cloud Composer, que suporta acionadores do Pub/Sub. Também pode integrar o Pub/Sub com a integração de aplicações (pré-visualização), que é uma solução de plataforma de integração como serviço (iPaaS). A integração de aplicações fornece um acionador do Pub/Sub para acionar ou iniciar integrações.
  • Conetores de integração.(Pré-visualização) Estes conetores permitem-lhe estabelecer ligação a várias origens de dados. Com os conetores, os Google Cloud serviços e as aplicações empresariais de terceiros são expostos às suas integrações através de uma interface transparente e padrão. Para o Pub/Sub, pode criar uma ligação do Pub/Sub para utilização nas suas integrações.

Passos seguintes