home Sem categoria RabbitMQ: o que é e como utilizar

RabbitMQ: o que é e como utilizar

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.

Gostou? Compartilhe:

Nathan de Sousa Martins

Nathan de Sousa Martins

Graduando em sistemas de informação e estagiário na Cedro entusiasta de novas tecnologias.