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

Renato Groffe
4 min readJul 15, 2019

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

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