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.
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.
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..
Bem, você deve estar se perguntando... mas como eu implemento isso?
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
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
Top comments (2)
Excelente post Luiz. Agora ficou mais claro pra mim, esse conceito de filas de mensageria!! Obrigado.
Boa Luiz. Interessante esse conceito de filas. Parabéns.