RabbitMQ: o que é e como utilizar

Rogério Marques

29 março 2018 - 16:18 | Atualizado em 29 março 2023 - 17:32

Pessoa utilizando computador de dia

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:

Ilustração rabbit queue_name

Onde as mensagens ficam e são retiradas pelos consumers.

Publisher:

Ilustração rabbit mq

É o responsável por incluir cada nova mensagem na fila, ou seja enviar a mensagem.

Consumer:

Ilustração rabbit mq

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:

Código fonte em RabbitMQ

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:

Código fonte da Cedro em RabbitMQ

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:

Tela de um código fonte em RabbitMQ

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:

Código fonte em RabbitMQ

2 – Agora adicionamos a parte do consumidor, que irá pegar as mensagens da fila:

Código fonte em rabbit

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:

Tela de código fonte em RabbitMQ sendo executado em CMD

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:

Recomendados para você

Mãos segurando conjunto de aparelhos tecnológicos
Transformação digital: o potencial combinado das tecnologias ...
Telas do adobe XD e logo do software
Como usar Assets no Adobe XD ...
Pessoas em uma reunião analisando folha com gráficos
Veja quais são os novos desafios tecnológicos das fintechs ...
Botão Fechar
Verificado pela Leadster
Botão Fechar
Logo