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ê

Ilustração de tela de computador e outros materiais de escritório ao lado
Principais pontos no mapeamento de riscos durante um projeto de TI ...
Desenho de atendente utilizando headset rodeado por ícones envolvendo seu trabalho
SAC 2.0: 5 soluções que o setor de TI pode aproveitar ...
Homem sorrindo utilizando computador
Estratégia e foco em vendas: o novo papel do CIO ...