Dev (Back & Front)ARTIGO

.NET Core + Mensageria: exemplos utilizando RabbitMQ e Azure Service Bus

O autor fala sobre mensageria com .NET Core apresenta dois exemplos empregando soluções de mensageria em aplicações baseadas no .NET Core 2.0 e no ASP.NET Core 2.0 utilizando o RabbitMQ e o Azure Service Bus.

Message Brokers são soluções voltadas para trocas de mensagens entre diferentes aplicações. O uso deste tipo de tecnologia está comumente associado à integração entre projetos e emprega, um pattern de mensageria conhecido como publish-subscribe, o qual prevê uma aplicação (publisher) da qual se originam as mensagens, geralmente uma fila (queue) controlada pelo Message Broker e um ou mais consumidores (subscribers) desta queue.

A imagem a seguir traz uma representação esquemática deste padrão:

Dentre as vantagens oferecidas pela adoção de mecanismos de mensageria, é possível destacar:

  • Um menor acoplamento entre aplicações, com os projetos que se comunicam via mensageria desconhecendo, na maior parte das vezes, detalhes de implementação das diferentes partes envolvidas;
  • A possibilidade de integrar aplicações construídas em diferentes plataformas de desenvolvimento, já que muitas soluções de mensageria contam com suporte a diversas tecnologias;
  • Uma forma elegante de segregar processos de longa duração, com uma aplicação gerando uma mensagem que indica a necessidade de realização de uma tarefa específica e outro projeto cuidando da execução de tal ação.

Este artigo traz dois exemplos empregando soluções de mensageria em aplicações baseadas no .NET Core 2.0 e no ASP.NET.NET113 conteúdosNovidades do .NET 9 – o tipo genérico OrderedDictionaryDev (Back & Front) · dez 2024Novidades .NET 10: novas formas de uso do .NET CLIDev (Back & Front) · dez 2025Novidades do .NET 5: implementando um proxy reverso com YARP + ASP.NET 5Dev (Back & Front) · nov 2020Ver tudo em Dev (Back & Front) Core 2.0:

Utilizando o RabbitMQ

Open source e multiplataforma (contando ainda com suporte a containers Docker), o RabbitMQ é, sem sombra de dúvidas, uma das alternativas mais populares tratando-se de Message Brokers. Aplicações construídas em tecnologias como .NET, Node, Java, Ruby e Python podem se beneficiar dos recursos oferecidos por esta solução em projetos que dependam de mecanismos de mensageria.

No repositório a seguir, temos exemplos de uso do RabbitMQ com o .NET Core 2.0 e o ASP.NET Core 2.0:

Aplicações .NET podem interagir com um Broker baseado no RabbitMQ, empregando para isto o package RabbitMQ.Client (este último já compatível com o .NET Standard):

O RabbitMQ foi também tema de um hangout do Canal .NET neste ano de 2018. A gravação se encontra disponível no YouTube e pode ser assistida gratuitamente (inclusive os projetos aqui mencionados foram descritos em detalhes neste vídeo):

Utilizando o Azure Service Bus

Alternativa ao RabbitMQ, o Service Bus é um serviço de mensageria que integra o Microsoft Azure. A seguir, está uma nova versão do mesmo exemplo apresentado na seção anterior já adaptado para uso desta solução (inclui o uso do Application Insights, serviço de monitoramento que integra a plataforma de cloud computing da Microsoft):

Em aplicações .NET, o package Microsoft.Azure.ServiceBus (também compatível com o .NET Standard) permitirá a integração com o Azure Service Bus:

Referências

Atua como consultor em atividades voltadas ao desenvolvimento de sistemas há mais de 15 anos. Microsoft MVP (Most Valuable Professional) e participante do programa MTAC (Multi-Plataform Technical Audience Contributor). Bacharel em Sistemas de Informação, com Especialização em Engenharia de Software e MBA em Business Intelligence. Também é palestrante e autor técnico em portais e revistas especializadas, com foco em tecnologias Microsoft e boas práticas na área de software.

Ver perfil