Conceitos de mensageria
Entenda comandos, eventos e filas.
Conceitos de mensageria é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.
Por que usar mensagens
As mensagens assíncronas permitem que os serviços se comuniquem sem chamar uns aos outros diretamente. Um produtor envia uma mensagem; um consumidor a processa posteriormente. Isso desacopla os serviços, suaviza picos de carga e mantém o sistema resiliente quando um consumidor fica temporariamente indisponível.
O que é MassTransit
MassTransit é uma estrutura .NET que funciona sobre agentes de mensagens como RabbitMQ ou o Azure Service Bus. Ela cuida da serialização, do roteamento, das novas tentativas e de outros detalhes, para que o senhor se concentre nas mensagens e nos manipuladores, não na infraestrutura do agente.
dotnet add package MassTransitComandos versus eventos
Há duas intenções de mensagem importantes. Um comando instrui um serviço específico a fazer algo ("ChargePayment"). Um evento anuncia que algo aconteceu ("OrderPlaced") para quem tiver interesse. Os comandos têm um manipulador; os eventos podem ter vários.
Modelando um comando
Um comando é um tipo simples de mensagem, nomeado no imperativo. Envie-o para um único consumidor.
public record ChargePayment(
Guid OrderId,
decimal Amount);Modelando um evento
Um evento recebe um nome no passado e é publicado para todos os assinantes interessados.
public record OrderPlaced(
Guid OrderId,
string CustomerEmail);Filas
Uma fila mantém as mensagens até que um consumidor as processe. Ela funciona ponto a ponto: cada mensagem é entregue exatamente a um consumidor, permitindo o balanceamento de carga entre instâncias de consumidores (consumidores concorrentes).
Intermediários e tópicos
Agentes como RabbitMQ fazem o roteamento por meio de intermediários. Um produtor publica em um intermediário, que distribui a mensagem para todas as filas vinculadas. É assim que um evento chega a vários assinantes.
Como MassTransit os utiliza
O MassTransit mapeia automaticamente seus tipos de mensagem para intermediários e filas. Enviar direciona uma mensagem para uma fila (comando); Publicar direciona uma mensagem para um intermediário, para que a fila de cada consumidor inscrito receba uma cópia (evento).
Desacoplamento na prática
O serviço de pedidos publica OrderPlaced e continua seu trabalho. De forma independente, um serviço de e-mail e um serviço de análise de dados consomem essa mensagem. Adicionar um novo assinante não exige nenhuma alteração no produtor.
Garantias de entrega
Os agentes geralmente oferecem entrega pelo menos uma vez: uma mensagem pode ser entregue novamente após uma falha. Por isso, os consumidores devem ser idempotentes, para que processar a mesma mensagem duas vezes seja seguro.
Quando usar mensagens
Recorra a mensagens quando o trabalho puder ocorrer de forma assíncrona, quando for necessário desacoplar serviços ou para absorver picos. Para uma resposta imediata a uma solicitação, uma chamada direta à API ainda pode ser mais simples.
Verificação rápida
Teste os conceitos de mensagens.
Recapitulação
As mensagens assíncronas desacoplam os serviços por meio de um agente. O MassTransit abstrai agentes como RabbitMQ. Os comandos (imperativos, com um manipulador) são enviados para uma fila; os eventos (no passado, com vários manipuladores) são publicados em um intermediário que os distribui para os assinantes. Espere uma entrega pelo menos uma vez, portanto torne os consumidores idempotentes.
Perguntas Frequentes
A aula “Conceitos de mensageria” é grátis?
Sim — o texto completo de “Conceitos de mensageria” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.
O que vou aprender em “Conceitos de mensageria”?
Entenda comandos, eventos e filas. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C# Academy?
Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Conceitos de mensageria”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C# Academy?
Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Conceitos de mensageria
- Produzindo e consumindo mensagens
- Sagas e fluxos de trabalho
- Tratamento de erros e novas tentativas