Mensageria + .NET Core 3.1: exemplos com RabbitMQ, Kafka, Azure Service Bus e Azure Queue Storage

Renato Groffe
4 min readJun 12, 2020

--

Recentemente participei de algumas apresentações no Canal .NET em que foi abordado o uso de mensageria em soluções construídas com .NET Core 3.1, com exemplos envolvendo tecnologias como Azure Queue Storage, Azure Service Bus, RabbitMQ e Apache Kafka.

Neste novo post trago diversos exemplos que implementei e utilizei durante estes eventos (além de projetos adicionais), bem como o link com a gravação de cada uma destas lives. Na seção de Referências foram incluídos também artigos cobrindo algumas das soluções de mensageria aqui mencionadas.

E aproveito este espaço para um convite…

Caso você precise conhecer mais sobre o Microsoft Azure como um todo, não deixe de aproveitar o preço promocional (apenas R$ 255,00) da segunda turma online do treinamento Azure na Prática com foco em Desenvolvimento Web que acontecerá dia 20/06/2020 (um sábado). Aproveite para aprender mais sobre as possibilidades oferecidas por serviços do Microsoft Azure como App Service (para hospedagem de Web Apps, com suporte a ASP.NET Core e Docker), Azure Storage, Azure Functions + Logic Apps (soluções serverless), Azure App Configuration + Key Vault… E o melhor, no conforto de sua casa! Acesse o link a seguir para informações e efetuar sua inscrição:

https://bit.ly/anp-web3-blog-groffe

Projetos de Exemplo

.NET Core 3.1 + Console Application + Envio de Mensagens + RabbitMQ + Azure Service Bus (Queues e Topics) + Apache Kafka

.NET Core + Azure Functions 3.x + Consumo de Mensagens + Queue Storage + RabbitMQ + Azure Service Bus (Queue)

.NET Core + Azure Functions 3.x + Azure Service Bus + Apache Kafka + Topics

ASP.NET Core 3.1 + API REST + Apache Kafka + Tópico (Envio de Mensagens)+ Manipulação de Ações

.NET Core + Azure Functions 3.x + Azure Cosmos DB + Apache Kafka (Tópico/Consumo de Mensagens) + HTTP Trigger + Cotações de Ações

.NET Core + Azure Functions 3.x + MongoDB + Apache Kafka (Tópico/Consumo de Mensagens) + Cotações de Ações

.NET Core 3.1 + Console Application + Apache Kafka (Tópico/Consumo de Mensagens) + Redis + Serilog + Manipulação de Ações

.NET Core + Azure Functions 3.x + RabbitMQ (Consumo de Mensagens)+ Azure SQL/SQL Server + RabbitMQ Trigger + HTTP Trigger

.NET Core 3.1 + Console Application + RabbitMQ (Consumo de Mensagens) + Moedas Estrangeiras

ASP.NET Core 3.1 + API REST + Azure Service Bus + Tópico (Envio de Mensagens) + Manipulação de Ações

.NET Core + Azure Functions 3.x + Azure Cosmos DB + Azure Service Bus (Topic/Consumo de Mensagens) + Queue Trigger + HTTP Trigger + Cotações de Ações

.NET Core + Azure Functions 3.x + Azure Service Bus (Topic/Consumo de Mensagens) + SQL Server + Dapper + HTTP Trigger + Cotações de Ações

.NET Core 3.1 + Console Application + Azure Service Bus (Topic/Consumo de Mensagens) + Redis + Serilog + Cotações de Ações

.NET Core + Serverless: Dicas e Truques com Azure Functions 3.x | Parte 2 [Vídeo]

Nesta live utilizei o projeto a seguir para o envio de mensagens a uma fila ou tópico (permitindo assim o teste de tecnologias como Azure Queue Storage, Azure Service Bus, RabbitMQ e Apache Kafka):

.NET Core 3.1 + Console Application + Envio de Mensagens + RabbitMQ + Azure Service Bus (Queues e Topics) + Apache Kafka

O consumo de mensagens associadas a filas criadas com Azure Queue Storage, Azure Service Bus e RabbitMQ envolveu um projeto baseado em Azure Functions + .NET Core 3.1:

.NET Core + Azure Functions 3.x + Consumo de Mensagens + Queue Storage + RabbitMQ + Azure Service Bus (Queue)

E um segundo projeto também criado com Azure Functions + .NET Core 3.1 e vinculado a tópicos do Azure Service Bus e Apache Kafka:

.NET Core + Azure Functions 3.x + Azure Service Bus + Apache Kafka + Topics

A gravação está disponível no YouTube:

Aplicações Distribuídas com Apache Kafka, .NET Core e Azure Functions [Vídeo]

Para esta apresentação utilizei um projeto ASP.NET Core 3.1 que possibilita o envio de mensagens a um tópico do Apache Kafka:

ASP.NET Core 3.1 + API REST + Apache Kafka + Tópico (Envio de Mensagens)+ Manipulação de Ações

E ainda implementei 3 projetos para o consumo de mensagens vinculadas ao tópico em questão:

.NET Core + Azure Functions 3.x + Azure Cosmos DB + Apache Kafka (Tópico/Consumo de Mensagens) + HTTP Trigger + Cotações de Ações

.NET Core + Azure Functions 3.x + MongoDB + Apache Kafka (Tópico/Consumo de Mensagens) + Cotações de Ações

.NET Core 3.1 + Console Application + Apache Kafka (Tópico/Consumo de Mensagens) + Redis + Serilog + Manipulação de Ações

A seguir temos a gravação do YouTube:

Web API, gRPC, AMQP: o que e quando usar? [Vídeo]

Nesta live um dos assuntos foi AMQP (Advanced Message Queuing Protocol), um dos protocolos mais populares entre soluções de mensageria. O Azure Service Bus constitui um bom exemplo de alternativa com suporte a este padrão, sendo que fiz uso desta tecnologia em uma aplicação ASP.NET Core 3.1 para o envio de mensagens a um tópico:

ASP.NET Core 3.1 + API REST + Azure Service Bus + Tópico (Envio de Mensagens) + Manipulação de Ações

Os próximos projetos exemplificam o consumo de mensagens vinculadas ao tópico do Azure Service Bus utilizado na aplicação anterior:

A gravação desta live também se encontra no YouTube:

--

--

Renato Groffe

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