RabbitMQ: o que é e como utilizar
Por Vitor Precioso
29 março 2018 - 16:18 | Atualizado em 25 janeiro 2023 - 23:54
O que é RabbitMQ:
RabbitMQ é um servidor de mensageria de código aberto (open source) desenvolvido em Erlang, implementado para suportar mensagens em um protocolo denominado Advanced Message Queuing Protocol (AMQP). Ele possibilita lidar com o tráfego de mensagens de forma rápida e confiável, além de ser compatível com diversas linguagens de programação, possuir interface de administração nativa e ser multiplataforma.
Dentre as aplicabilidades do RabbitMQ estão possibilitar a garantia de assincronicidade entre aplicações, diminuir o acoplamento entre aplicações, distribuir alertas, controlar fila de trabalhos em background.
Este artigo tem como objetivo demonstrar um simples exemplo de como utilizar o RabbitMQ.
Conceitos
Mensagem:
Uma mensagem é dividida em duas partes:
- Payload – é o corpo com os dados que serão transmitidos. Suporta vários tipos de dados como um array json até um filme mpeg.
- Label – é responsável pela descrição do payload e também como o RabbitMQ saberá quem irá receber a mensagem.
Fila:
Onde as mensagens ficam e são retiradas pelos consumers.
Publisher:
É o responsável por incluir cada nova mensagem na fila, ou seja enviar a mensagem.
Consumer:
Como diz o próprio nome é o agente responsável por consumir, retirar, a informação da fila.
Criando Publisher
Para começarmos, precisamos do RabbitMQ, que pode ser adquirido gratuitamente através do site oficial: https://www.rabbitmq.com/download.html, lembrando que também é possível utilizar com Docker.
Neste Tutorial estarei utilizando Asp.Net Core 2.0. Você também pode usar o .NET Framework, no entanto as etapas de configuração serão diferentes.
1 – Primeiramente crie um console application para o publisher e adicione o pacote nuget do RabbitMQ depois restaure o projeto.
- dotnet add package RabbitMQ.Client
- dotnet restore
2 – Depois iremos montar a conexão com o seguinte código:
Aqui nos conectamos a uma máquina local, daí o localhost. Se quisermos nos conectar uma máquina diferente, simplesmente especificaremos seu nome ou endereço IP.
3 – Agora iremos declarar a fila e criar a mensagem:
A fila só será criada se já não existir. O conteúdo da mensagem é uma matriz de bytes, para que você possa codificar o que quiser.
4 – Aqui iremos adicionar o método para publicar a mensagem:
E está pronto nosso publisher: ele irá enviar para a fila CedroBlog a mensagem que está no body.
Criando Consumer
1 – Para o consumer, iremos criar outro console application, criar a conexão e declarar fila da mesma maneira que no publisher:
2 – Agora adicionamos a parte do consumidor, que irá pegar as mensagens da fila:
Usamos um console ReadLine, para manter a aplicação rodando. Nosso consumer vai estar pegando toda mensagem que chega na fila CedroBlog e nos mostrando o que ela contém.
Resultado
Para ver os resultado,s execute primeiramente o consumer e logo em seguida o publisher. O resultado deverá ser o seguinte:
Fonte: arquivo pessoal
Dúvidas? Fale com a gente através do espaço de comentários logo abaixo.
Outros artigos que você também pode se interessar:
- As linguagens de programação mais utilizadas no mercado de tecnologia
- Como integrar o seu chatbot com as APIs do WhatsApp Business
- Exemplos reais e cases sobre Chatbots
- O que é um Chatbot?
Deixe um comentário