.NET Core 2.2 + ASP.NET Core 2.2 + RabbitMQ: exemplos utilizando mensageria

Renato Groffe
Jul 15 · 4 min read

Em um post de 2018 abordei o uso do RabbitMQ como solução de mensageria em aplicações baseadas na versão 2.1 do .NET Core e ASP.NET Core:

.NET Core 2.1 + ASP.NET Core 2.1 + RabbitMQ: exemplos utilizando mensageria

Neste novo artigo trago uma versão atualizada dos projetos descritos anteriormente, já contemplando o uso do .NET Core 2.2 e do ASP.NET Core 2.2.

E aproveito este espaço para deixar aqui ainda um convite.

Nesta segunda 15/07/2019 partir das 21:00 — horário de Brasília — teremos mais uma live no Canal .NET sobre Xamarin.Forms. Receberemos novamente o MVP Thiago Bertuzzi e o Ione Souza Junior, que finalizarão o app iniciado no primeiro evento e abordarão também o uso de renderers personalizados.

Para efetuar a sua inscrição acesse a página do evento no Meetup. A transmissão acontecerá via YouTube, em um link a ser divulgado em breve.

Configurando um ambiente para uso do RabbitMQ com Docker Compose

O arquivo detalhado a seguir permite que se crie rapidamente um ambiente para uso do RabbitMQ (com a imagem pública rabbitmq:3-management-alpine), empregando para isto o Docker Compose através do comando:

docker-compose up -d


Informações sobre a solução disponibilizada

O repositório RabbitMQ_HealthChecks-DotNetCore2.2 contém os seguintes projetos:

  • APIMensagens: API REST que possibilita o envio de mensagens para uma fila do RabbitMQ chamada TestesASPNETCore. Nesta nova versão adicionei ainda o uso de Health Checks, a fim de determinar se o broker do RabbitMQ está no ar ou não;
  • ProcessadorMensagens: Console Application em que um listener receberá para processamento as mensagens enviadas pelo projeto APIMensagens.

Para ter acesso a estes projetos acesse:

RabbitMQ + .NET Core 2.2 + ASP.NET Core 2.2 + Health Checks + Docker Compose

E aproveito este espaço e o grande interesse por Docker também para um convite.

Tem interesse em conhecer mais sobre Docker? Que tal então fazer um curso completo, cobrindo desde fundamentos a diferentes possibilidades de uso de containers com tecnologias em alta no mercado? Adquira conhecimentos profundos sobre Docker, evolua e se diferencie no mercado, seja você um profissional DevOps, um Desenvolvedor ou um Arquiteto de Software!

Acompanhe o portal Docker Definitivo para ficar por dentro de novidades a serem anunciadas em breve!

Site: https://dockerdefinitivo.com/


O projeto APIMensagens

Conforme mencionado anteriormente, o projeto APIMensagens foi atualizado nesta nova versão a fim de possibilitar o monitoramento da conexão com o RabbitMQ via Health Checks. Para isto foram adicionados ao projeto os packages:

  • AspNetCore.HealthChecks.RabbitMQ
  • AspNetCore.HealthChecks.UI
  • AspnetCore.HealthChecks.UI.Client

A seguir temos a nova versão da classe Startup, com chamadas aos métodos AddHealthChecks + AddRabbitMQ (linhas 38 e 39), AddHealthChecksUI (linha 40), UseHealthChecks (linha 57) e UseHealthChecksUI (linha 64):

Na próxima imagem temos o dashboard gerado no endpoint /healthchecks-ui, com o mesmo indicando a operação normal do broker do RabbitMQ:

Maiores detalhes sobre o uso de Health Checks e a sua visualização a partir de um dashboard podem ser encontrados no seguinte artigo:

ASP.NET Core + Health Checks: monitorando a saúde de uma aplicação via dashboard


O projeto ProcessadorMensagens

A única modificação nesta Console Application foi realizada na classe Program, mais precisamente na parte final do método Main com a configuração para fechamento desta aplicação através do método CancelKeyPress do tipo Console via CTRL + C ou CTRL + Break:


Testes

Na imagem seguinte temos um exemplo de requisição enviada a APIMensagens, com o retorno indicando que uma mensagem foi direcionada ao broker do RabbitMQ:

Acessando o dashboard do RabbitMQ em http://localhost:15672/ aparecerá a fila TesteASPNETCore e seu estado atual:

Já na Console Application ProcessadorMensagens serão processadas as mensagens vinculadas à fila TesteASPNETCore:


Onde encontrar bons conteúdos gratuitos sobre RabbitMQ?

No Canal .NET temos a gravação de duas lives sobre RabbitMQ:

E recomendo fortemente aos interessados em aprender mais sobre RabbitMQ o site gaGO.io, do meu amigo Luiz Carlos Faria (Microsoft MVP).


Renato Groffe

Written by

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade