.NET 5 + RabbitMQ: exemplos de implementação
Neste post trago 2 exemplos de utilização de RabbitMQ com .NET 5: uma Console Application para envio de mensagens a uma fila, além de um Worker Service para processamento destas mensagens. Nas 2 aplicações fiz uso do package RabbitMQ.Client para permitir assim a comunicação com um broker do RabbitMQ.
Estes projetos já foram disponibilizados no GitHub:
.NET 5 + Console Application + RabbitMQ + Queues + Sender + Serilog
.NET 5 + Worker Service + RabbitMQ + Queues + Consumer
Na próxima listagem está a implementação da Console Application EnvioRabbitMQ, empregando no envio de mensagens a uma fila do RabbitMQ:
Na classe Worker do projeto WorkerConsumoRabbitMQ acontecerá o consumo de mensagens enviadas a uma fila, com o método Consumer_Received sendo vinculado ao evento Received de uma instância de EventingBasicConsumer (namespace RabbitMQ.Client.Events) em ExecuteAsync:
Importante destacar que o uso do template Worker Service traz como vantagens diversas funcionalidades habilitadas por default como logging, o mecanismo de configurações do próprio .NET e injeção de dependências.
Também neste segundo exemplo serão informados parâmetros durante a execução do comando dotnet run: a string de conexão com o RabbitMQ e a fila a partir da qual ocorre o consumo das mensagens. Tais valores ficarão vinculados a uma instância do tipo ParametrosExecucao, como indicado na listagem a seguir:
Para os testes das 2 aplicações indicadas neste post utilizei uma fila chamada filatestes, enviando inicialmente 3 mensagens como especificado no comando a seguir:
dotnet run "<STRING DE CONEXÃO>" "filatestes" "msg1" "msg2" "msg3"
Na sequência iniciei a aplicação de consumo com o comando:
dotnet run "<STRING DE CONEXÃO>" "filatestes"
E enviei novas mensagens utilizando os comandos:
dotnet run "<STRING DE CONEXÃO>" "filatestes"
O resultado desses testes pode ser observado na imagem seguinte:
O uso do RabbitMQ é tema frequente de lives no Canal .NET, tanto que no ano de 2020 esta tecnologia open source foi destaque em 2 eventos gratuitos cujas gravações estão disponíveis no YouTube (e que já contam com milhares de views!):
Quando pensamos em mensageria temos inúmeras alternativas, levando-se em conta as várias tecnologias oferecidas no mercado e suas diferentes possibilidades…
E nesta semana teremos mais um evento online e gratuito cobrindo este tema. Desta vez uma mesa redonda (edição #56) do canal Coding Night, em que discutiremos como se beneficiar em diversos tipos de projetos do uso de soluções como Azure Queue Storage, Azure Service Bus, RabbitMQ e Apache Kafka em cenários envolvendo mensageria e microsserviços.
Quando: 07/01/2021 (quinta) a partir das 21:00 — horário de Brasília
Para participar gratuitamente faça sua inscrição acessando o link:
E caso precise aprofundar seus conhecimentos sobre RabbitMQ, deixo aqui o convite para você participar da MasterClass RabbitMQ para aplicações .NET!
Esta é uma iniciativa promovida pelo meu amigo Luiz Carlos Faria (Microsoft MVP, MTAC, gaGO.io) e que acontecerá agora nos dias 9 e 10 de Janeiro de 2021 (próximos sábado e domingo).
Para saber mais a respeito e efetuar sua inscrição acesse: