Visão geral da publicação de mensagens

Este documento fornece uma visão geral sobre as mensagens de publicação.

Fluxo de trabalho da publicação de mensagens

Para publicar uma mensagem com o Pub/Sub, um aplicativo editor cria e envia mensagens para um tópico.

  1. Criar uma mensagem contendo seus dados.
  2. Selecione os atributos de publicação opcionais.
  3. Envie uma solicitação ao servidor do Pub/Sub para publicar a mensagem em um tópico especificado.
  4. O serviço Pub/Sub recebe a mensagem e a processa da seguinte maneira:

    • A mensagem está armazenada para distribuição.

    • A mensagem é replicada em várias zonas para maior durabilidade e alta disponibilidade.

    • Pub/Sub identifica assinantes com assinaturas que correspondem ao tópico da mensagem e entrega uma cópia da mensagem para cada um.

O Pub/Sub oferece entrega de mensagens pelo menos uma vez e ordem de melhor esforço para assinantes atuais.

Para ter uma visão geral do sistema Pub/Sub, consulte Visão geral do serviço Pub/Sub.

Para uma explicação de como o Pub/Sub funciona, consulte Visão geral da arquitetura do Pub/Sub.

Sobre os temas

Um tópico do Pub/Sub é um recurso nomeado que representa um feed de mensagens. Quando um editor envia uma mensagem, ela segmenta um tópico específico. O serviço Pub/Sub usa esse nome de tópico para encaminhar a mensagem para todas as assinaturas anexadas ao tópico. Se houver vários assinantes para uma assinatura, apenas um deles receberá a mensagem.

Os editores não precisam saber quantos assinantes existem. Elas se concentram no tópico, garantindo a separação de preocupações entre o envio e o recebimento de mensagens.

Replicação de dados em um tópico

Um tópico do Pub/Sub usa três zonas para armazenar dados. O serviço é compatível com replicação síncrona para pelo menos duas zonas e replicação de melhor esforço para uma terceira zona adicional. A replicação do Pub/Sub está em apenas uma região.

Propriedades de um tópico

Ao criar ou atualizar um tópico, especifique as propriedades dele.

Sobre as mensagens

Uma mensagem do Pub/Sub são os dados que passam pelo serviço.

Uma mensagem consiste em campos com os dados e os metadados da mensagem. É preciso especificar uma das opções a seguir em uma mensagem.

  • Os dados da mensagem: são o conteúdo principal da mensagem e podem ser textos ou dados binários. Ele representa as informações reais que você quer transmitir entre editores e assinantes. Se você estiver usando diretamente a API REST, os dados da mensagem precisarão ser codificados em base64. Veja o exemplo na guia REST da seção Publicar mensagens.

  • Uma chave de ordenação: é um identificador que representa a entidade em que as mensagens precisam ser ordenadas. As mensagens com a mesma chave de ordem precisam ser entregues a um assinante na ordem em que foram publicadas. Uma chave de ordem só será necessária se você quiser a entrega ordenada das suas mensagens. Para saber mais sobre como ordenar chaves, consulte Mensagem de pedido.

  • Atributos: são pares de chave-valor opcionais que oferecem mais contexto e informações sobre a mensagem. Eles podem ser usados para rotear, filtrar ou enriquecer o conteúdo da mensagem. Por exemplo, é possível adicionar atributos como carimbos de data/hora ou IDs da transação. Para saber mais sobre os atributos usados na publicação de mensagens, consulte Usar atributos para publicar uma mensagem.

O serviço Pub/Sub adiciona os seguintes campos à mensagem:

  • Um ID de mensagem exclusivo para o tópico
  • Carimbo de data/hora de quando o serviço do Pub/Sub recebe a mensagem

Por exemplo, aqui está um formato de mensagem em JSON:

{
  "data": "This is the core message content.",
  "attributes": {
    "category": "notification",
    "user_id": "12345",
    "priority": "medium"
  },
    "orderingKey": "12345"
}

A seguir