[RabbitMQ] Gerenciando Mensagens no C#

Thiago Loureiro
3 min readOct 20, 2017

Estou atualmente trabalhando em um projeto com filas usando RabbitMQ e achei interessante escrever esse artigo para compartilhar a experiência com vocês.

No exemplo irei utilizar plataforma Windows, RabbitMQ, C# e Visual Studio 2017.

Requisitos:

  • ErLang;
  • RabbitMQ

Instalação

Instalar Erlang para Windows.

Link para Download: http://www.erlang.org/download.html

Selecione a versão correspondente ao seu sistema operacional: OTP 32Bit Binary File ou OTP 64Bit Binary File.

Instalar o RabbitMQ para Windows

Link para Download: http://www.rabbitmq.com/download.html

Após a instalação do RabbitMQ localize o Command Prompt do RabbitMQ, lembre-se de executar como administrador.

No prompt de comando execute o seguinte comando:

rabbitmq-plugins enable rabbitmq_management

Após isso abra o seu navegador e acesse a seguinte url:

http://localhost:15672

Você será solicitado para inserir usuário e senha:

User: guest

Password: guest

Você deverá visualizar a seguinte tela

Feito isso a parte de instalação está concluída, claro que outras configurações podem ser executadas mas o objetivo desse tutorial não é entrar em detalhes na configuração do RabbitMQ e sim realizar manipular as informações através do C#.

No projeto de exemplo, hospedado aqui estou usando Console Application e .NET Framework 4.5.2.

É necessário instalar o pacote RabbitMQ.Client através do Package Manager Console

Install-Package RabbitMQ.Client

Basicamente para usar filas, criar queues, enviar e receber mensagens você precisará de dois objetos:

  • ConnectionFactory;
  • IConnection;

Criando a Connection Factory

Criando a Connection:

Criando uma nova Queue

Os parâmetros para criar a queue são:

  • Queue (string) — Nome da Fila;
  • Durable (bool) — Quando a fila é marcada como durable, a fila permanece ativa quando o servidor é reiniciado.
  • Exclusive (bool) — Filas exclusivas só podem ser acessadas através da conexão corrent e são excluídas quando a conexão é fechada.
  • AutoDelete (bool) — Quando ativada a file é automaticamente excluída após todos os consumidores terminarem de usá-la.

Escrevendo mensagens na fila:

Retornando mensagens da fila:

Resultado:

A AsciiArt utilizei o seguinte pacote: AsciiArtLibrary

Clique aqui para realizar o download do fonte utilizado no exemplo.

Espero que tenham gostado, até o próximo !

--

--