O que é o Pub/Sub?

O Pub/Sub traz a flexibilidade e a confiabilidade do middleware corporativo orientado a mensagens para a nuvem. Ao mesmo tempo, o Pub/Sub é um sistema de processamento e entrega de eventos durável e escalonável que serve como base para canais de análise de stream modernos. Ao oferecer mensagens assíncronas de muitos para muitos que separam remetentes e destinatários, ele permite uma comunicação segura e altamente disponível entre aplicativos criados de modo independente. O Pub/Sub entrega mensagens duradouras e de baixa latência que ajudam os desenvolvedores a integrar rapidamente os sistemas hospedados no Google Cloud Platform e externamente.

Você é um desenvolvedor de mensagens experiente e quer começar agora? Confira o Guia de início rápido. Para uma introdução mais abrangente, consulte Como criar um sistema Pub/Sub funcional. Outros pontos de partida muito procurados são a Visão geral da documentação do Pub/Sub e as Bibliotecas de cliente.

Principais conceitos

  • Tópico: um recurso nomeado para o qual os editores enviam mensagens.
  • Assinatura: um recurso nomeado que representa o fluxo de mensagens de um tópico específico a ser entregue para o aplicativo assinante. Para mais detalhes sobre assinaturas e a semântica da entrega de mensagens, consulte o Guia do assinante.
  • Mensagem: a combinação de dados e atributos (opcionais) que um editor envia a um tópico e que é entregue aos assinantes.
  • Atributo de mensagem: um par de chave-valor que um editor pode definir para uma mensagem. Por exemplo, a chave iana.org/language_tag e o valor en poderiam ser adicionados às mensagens para marcá-las como legíveis por um assinante que fala inglês.

Relacionamentos entre editor e assinante

O aplicativo de um editor cria e envia mensagens para um tópico. Para receber essas mensagens, os aplicativos do assinante criam uma assinatura de um tópico. A comunicação pode ser de um para muitos, de muitos para um e de muitos para muitos.

Fluxo de mensagens do Pub/Sub

Esta é uma visão geral dos componentes do sistema do Pub/Sub e do fluxo de mensagens entre eles:

  1. Um aplicativo editor cria um tópico no serviço do Pub/Sub e envia mensagens para o tópico. Uma mensagem contém um payload e atributos opcionais que descrevem o conteúdo dele.
  2. O serviço garante que as mensagens publicadas sejam retidas em nome de assinaturas. Uma mensagem publicada é retida para uma assinatura até que seja reconhecida por qualquer assinante que consuma mensagens dessa assinatura.
  3. O Pub/Sub encaminha mensagens de um tópico para todas as inscrições individualmente. Cada assinatura recebe as mensagens por meio de um push do Pub/Sub para o endpoint escolhido pelo assinante ou por meio de um pull que o assinante realiza no serviço.
  4. O assinante recebe as mensagens pendentes da assinatura e confirma cada uma para o serviço do Pub/Sub.
  5. Quando uma mensagem é confirmada pelo assinante, ela é removida da fila de mensagens da assinatura.

Endpoints do editor e do assinante

Editores podem ser qualquer aplicativo que possa fazer solicitações de HTTPS para googleapis.com: um aplicativo do App Engine, um serviço da Web hospedado no Google Compute Engine ou qualquer rede de terceiros, um aplicativo instalado para computadores ou dispositivos móveis, ou até mesmo um navegador.

Assinantes de pull também podem ser qualquer aplicativo que faça solicitações HTTPS para googleapis.com.

Atualmente, os assinantes de push precisam ser endpoints do Webhook que consigam aceitar solicitações POST por HTTPS.

Casos comuns de uso

  • Equilibrar cargas de trabalho em clusters de rede. Por exemplo, uma fila grande de tarefas pode ser distribuída com eficiência entre vários funcionários, como instâncias do Google Compute Engine.
  • Implementar fluxos de trabalho assíncronos. Por exemplo, um aplicativo de processamento de pedidos pode incluir um pedido em um tópico, a partir do qual ele pode ser processado por um ou mais funcionários.
  • Distribuir notificações de eventos. Por exemplo, um serviço que aceita assinaturas de usuários pode enviar notificações sempre que um novo usuário for registrado, e serviços de downstream podem assinar para receber notificações sobre o evento.
  • Atualizar caches distribuídos. Por exemplo, um aplicativo pode publicar eventos de invalidação para atualizar os códigos de objetos que foram alterados.
  • Login em vários sistemas. Por exemplo, uma instância do Google Compute Engine pode gravar registros no sistema de monitoramento, em um banco de dados para consultas futuras e assim por diante.
  • Streaming de dados de vários processos ou dispositivos. Por exemplo, um sensor residencial pode enviar dados para servidores de back-end hospedados na nuvem.
  • Melhora da confiabilidade. Por exemplo, um serviço do Compute Engine de uma única zona pode operar em outras ao assinar um tópico em comum para se recuperar de falhas em uma zona ou região.

Integrações do Pub/Sub

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Pub/Sub