
Conhecendo o básico de GCP Pub/Sub
O Google Cloud Pub/Sub é um serviço de mensageria que permite a comunicação assíncrona entre aplicações, independentemente da sua disponibilidade. Isso significa que as aplicações que se integram ao Pub/Sub não precisam estar constantemente online ou conectadas diretamente entre si. Basta que utilizem a biblioteca do Pub/Sub para envio e recebimento de mensagens. Além disso, o Pub/Sub suporta integração tanto dentro da GCP quanto em ambientes multi-cloud.
Vantagens do GCP Pub/Sub
- Durabilidade das mensagens: As mensagens são armazenadas por padrão por 7 dias, permitindo que sejam consumidas posteriormente.
- Escalabilidade: Projetado para lidar com grandes volumes de mensagens e suportar processamento distribuído.
Estrutura do GCP Pub/Sub
O funcionamento do Pub/Sub se baseia em dois conceitos principais: tópicos e subscriptions.
- O cliente que publica mensagens em um tópico é chamado de Publisher.
- O cliente que consome mensagens de um subscription é chamado de Subscriber.
A publicação de uma mensagem em um tópico só será recebida por um subscriber caso um subscription já tenha sido criado para aquele tópico.
- Um tópico pode ter várias subscriptions.
- Cada subscription pertence a um único tópico.
- É possível configurar múltiplos subscribers para um mesmo subscription.
Padrões de Usabilidade
O Pub/Sub permite a implementação de diferentes padrões de uso:
- Básico: Uma aplicação publica mensagens em um tópico e um subscriber as consome através de um subscription.
- Fan-in (Load Balancing): Múltiplos publishers publicam mensagens no mesmo tópico, enquanto múltiplos subscribers consomem de um único subscription, permitindo balanceamento de carga.
- Fan-out: Um tópico com vários subscribers, cada um associado a um subscription diferente, garantindo que todos recebam todas as mensagens.
Pull vs. Push Subscription
O Pub/Sub oferece dois modelos de entrega de mensagens:
- Pull Subscription: O subscriber busca mensagens periodicamente no Pub/Sub. Esse modelo é utilizado em filas, garantindo que a mensagem só seja marcada como entregue (ack) após o processamento.
- Push Subscription: O Pub/Sub envia mensagens diretamente para um endpoint HTTP. Um webhook deve ser registrado para receber essas mensagens.
Se um subscription push não confirmar o recebimento da mensagem (ACK), o Pub/Sub continuará tentando entregá-la por até 7 dias.
Configuração e Gerenciamento
- ackDeadline: Tempo de espera para que o Pub/Sub aguarde o ACK antes de tentar a entrega novamente.
- Replay Mechanism: Permite reprocessamento de mensagens, garantindo maior resiliência.
Prática no GCP Cloud Shell
Para criar e testar um Pub/Sub diretamente no Google Cloud, você consegue seguindo os seguintes passos:
- Criar um tópico:
gcloud pubsub topics create meu-topico
- Publicar uma mensagem:
gcloud pubsub topics publish meu-topico --message "Ola, Pub/Sub!"
- Criar uma subscription:
gcloud pubsub subscriptions create --topic meu-topico minha-subscricao
- Consumir mensagens:
gcloud pubsub subscriptions pull minha-subscricao --auto-ack
O Google Cloud Pub/Sub é uma solução robusta para processamento de eventos em larga escala, facilitando integrações entre sistemas e garantindo escalabilidade e confiabilidade para arquiteturas distribuídas.
No próximo texto sobre o tema irei trazer um exemplo de projeto em Python que faz a implementação da integração com o Pub/Sub.