DEV Community

Cover image for RabbitMQ
Luiz Carlos
Luiz Carlos

Posted on

RabbitMQ

Olá, hoje vou falar um pouquinho do que aprendi durante meu estudo e aprendizagem sobre o RabbitMQ que é uma das ferramentas de mensageria mais utilizadas atualmente.

Mas pra que serve isso?
Alt Text

O RabbitMQ é um message broker utilizado para fazer a gestão e controle de envio e recebimento de mensagens, mas para entender melhor sobre ele você vai precisar entender o que é um message broker.

Bem, um message broker é uma ferramenta que possibilita a comunicação entre dois aplicativos, sistemas e até serviços de uma forma confiável e segura, não importando a linguagem em que eles foram desenvolvidos, ou até mesmo plataformas.

Ele funciona como um intermediador na comunicação entre os dois aplicativos, permitindo que os remetentes se comuniquem sem saber onde um ou outro está, o remetente pode enviar uma mensagem e o destinatário estar inativo, porem assim que o destinatário ficar ativo o message broker vai enviar a mensagem pra ele facilitando o desacoplamento entre os serviços ou sistemas.

Pelo que entendi, os message broker trabalham com um esquema de fila.

Alt Text

O RabbitMQ faz a gestão e controle das filas utilizando o protocolo AMQP(Advanced Message Queuing Protocol), que é um protocolo avançado de enfileiramento de mensagens.

Esse protocolo envia e recebe as mensagens de forma assíncrona, Ele armazena as mensagens que chegam em uma fila, guardando elas exatamente na ordem em que elas chegaram até que os apps consumidores possam consumi-las. Após uma mensagem ser consumida ela é retirada da fila.

O RabbitMQ utiliza um padrão para fazer a gestão das mensagens, que consiste em ter um publicador e um consumidor da mensagem, tentei representar na imagem a baixo rss..
Alt Text

Bem, você deve estar se perguntando... mas como eu implemento isso?
Alt Text

Bora lá então, eu fiz uma pesquisa e consegui achar alguns exemplos práticos implementando um publicador e um consumidor, abaixo está um exemplo utilizando NodeJS retirado da própria documentação do RabbitMQ.

Visite o link abaixo para ver exemplos com outras linguagens.
Link: https://www.rabbitmq.com/getstarted.html

Bem, mas antes de tudo você vai precisar instalar o RabbitMQ. Para fazer a instalação e subir ele local eu utilizei o tutorial no link abaixo e deu certinho.
Link: https://www.vultr.com/docs/install-rabbitmq-server-ubuntu-20-04-lts
Alt Text

Agora vamos ao código rs rs, o exemplo abaixo está utilizando o NodeJs e eu deixei ele lá no meu GitHub faz uma visitinha lá, vlw...
https://github.com/luizcrrds/messagingluizcrrds-node-rabbitmq

Publicador:

Alt Text

Consumidor:

Alt Text

Obrigado pela leitura, espero ter contribuído. Deixe o seu feedback!

Top comments (2)

Collapse
 
stanley profile image
Stanley Gomes

Excelente post Luiz. Agora ficou mais claro pra mim, esse conceito de filas de mensageria!! Obrigado.

Collapse
 
barbosamarlem profile image
Marlem Barbosa

Boa Luiz. Interessante esse conceito de filas. Parabéns.