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ê

homem de óculos analisa informações em seu notebook
4 desafios que um profissional de compliance enfrenta hoje ...
Pessoa utilizando celular e computador
Com Angular 4, seu front-end vai além do visual ...
Homem analisando gráficos em folha com rede dados em primeiro plano
Guia explicativo do Big Data ...