DEV Community

Mayron Ceccon
Mayron Ceccon

Posted on

6

Pub/Sub messaging

Publish/subscribe messaging ou pub/sub messaging, é uma forma de comunicação assíncrona service-to-service, utilizada em arquiteturas serverless e de micro-serviços.

O pub/sub permite uma comunicação segura e altamente disponível entre aplicativos criados de modo independente.

Em um modelo pub/sub, qualquer mensagem publicada para um tópico é imediatamente recebida por todos os subscribers deste tópico.

pub-sub

Conceitos

Mensagem: é a combinação de dados e atributos (opcionais) que um editor envia a um tópico e que é entregue aos assinantes.

Tópico: É um recurso nomeado para onde são enviadas as mensagens.

Publish: É quem envia a mensagem para um tópico.

Subscribe: É aquele que esta assinando determinada fila, e recebe as mensagens.

Na prática

Como exemplo criei um projeto, onde, tenho seis subscribers, que estão desenvolvidos em diferentes linguagens, Python, Go, Node, PHP. O publisher foi feito com Python.

Os subscribers estão "assinados" ao tópico topic_create_file.

A responsabilidade de cada subscriber é converter uma mensagem em JSON, para um outro tipo de arquivo, csv, html, xml, xls.

Pub/Sub

Ambiente utilizado

Versão
ubuntu 18.04
docker 19.03.9
docker-compose 1.25.4
python 3.8.3
php 7.4.6
node 12.16.3
npm 6.14.4
go 1.14.3

Redis

docker-compose up --build

Instalação

Python

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Node

npm install

Go

go get github.com/gomodule/redigo/redis

PHP

composer install

Execução dos Subscribes

Python

python subscribes/service_csv.py
python subscribes/service_excel.py
python subscribes/service_html.py

Node

node subscribes/service_xml.js

Go

go run subscribes/service_csv.go

PHP

php subscribes/service_csv.php

Execução do Publisher

python publisher.py



Referências

https://cloud.google.com/pubsub/docs/overview?hl=pt-br
https://aws.amazon.com/pub-sub-messaging/

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more