Utilizando RabbitMQ
com .NET Core e EasyNetQ
Robson Rocha de Araújo
Robson Rocha de Araújo
• 37 anos, casado, 3 filhos
• 20+ anos de experiência no stack Microsoft (.NET desde 2000)
• 6+ anos como Microsoft Certified Trainer (People / Impacta)
• 28+ Certificações Microsoft
• Microsoft MVP: Azure
• 2 anos como Premier Field Engineer (.NET) na Microsoft
• Co-autor do livro “Desenvolvimento Efetivo na Plataforma
Microsoft”
Editora Casa do Código
• Solutions Architect @ Venturus desde 07/2017
• Hobby: tentar dormir
https://about.me/robsonaraujo
O que é o RabbitMQ?
Um dos mais populares Message Brokers do mercado
• Open Source
• Baseado em AMQP (Advanced Message Queuing Protocol)
• Utilizado para redução e distribuição de carga
• Utiliza o conceito de Exchanges e Queues
Instalando o RabbitMQ com Docker
docker run -d --hostname rabbitmq --name rabbitmq
-p 5672:5672 -p 15672:15672 -e
RABBITMQ_DEFAULT_USER=rabbit -e
RABBITMQ_DEFAULT_PASS=P@$$w0rd rabbitmq:3-
management
Gerenciando o RabbitMQ
http://localhost:15672
• Conexões
• Canais
• Exchanges
• Filas
Gerenciando o RabbitMQ
http://localhost:15672
• Conexões
• Canais
• Exchanges
• Filas
O que é o EasyNetQ?
Biblioteca que simplifica a utilização do RabbitMQ
• Open Source
• Abstrai e simplifica a biblioteca RabbitMQ.Client
• Possui APIs de utilização e gerenciamento
• Utilizar vários patterns de mensageria
• Publish/Subscribe, Send/Receive, Request/Response
Pattern Publish/Subscribe
• Producer gera a mensagem, e todos os subscribers as recebem
imediatamente
• Se não houverem subscribers, a mensagem é descartada
• Útil para notificações e tracing
Pattern Request/Response
• Producer gera um request, que aciona o consumer
• Um único consumer é acionado. Caso hajam múltiplos consumers,
são acionados em round-robin
• Client do producer pode aguardar síncronamente
a resposta do consumer
Pattern Send/Receive
• Producer gera uma mensagem, que é enfileirada
• Consumer recebe a mensagem da fila, quando conectar
• Múltiplos consumers são acionados em
round-robin
• Útil para cenários de distribuição de carga
Demonstração
Utilizando o EasyNetQ para produzir e consumir mensagens no
RabbitMQ
Dúvidas?
Período: 13/05 – 24/05
Online via Microsoft Teams
Horário: 19:00 – 23:00
10% off com o cupom desconto10
https://bit.ly/procoding-csharp-turma3
Período: 27/05 – 07/06
Online via Microsoft Teams
Horário: 19:00 – 23:00
10% off com o cupom desconto10
https://bit.ly/procoding-mvc-turma3
Período: 10/06 – 21/06
Online via Microsoft Teams
Horário: 19:00 – 23:00
10% off com o cupom desconto10
https://bit.ly/procoding-azws-turma3
Muito Obrigado!
https://www.procoding.com.br

Utilizando RabbitMQ com .NET Core e EasyNetQ

  • 1.
    Utilizando RabbitMQ com .NETCore e EasyNetQ Robson Rocha de Araújo
  • 2.
    Robson Rocha deAraújo • 37 anos, casado, 3 filhos • 20+ anos de experiência no stack Microsoft (.NET desde 2000) • 6+ anos como Microsoft Certified Trainer (People / Impacta) • 28+ Certificações Microsoft • Microsoft MVP: Azure • 2 anos como Premier Field Engineer (.NET) na Microsoft • Co-autor do livro “Desenvolvimento Efetivo na Plataforma Microsoft” Editora Casa do Código • Solutions Architect @ Venturus desde 07/2017 • Hobby: tentar dormir https://about.me/robsonaraujo
  • 3.
    O que éo RabbitMQ? Um dos mais populares Message Brokers do mercado • Open Source • Baseado em AMQP (Advanced Message Queuing Protocol) • Utilizado para redução e distribuição de carga • Utiliza o conceito de Exchanges e Queues
  • 4.
    Instalando o RabbitMQcom Docker docker run -d --hostname rabbitmq --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=rabbit -e RABBITMQ_DEFAULT_PASS=P@$$w0rd rabbitmq:3- management
  • 5.
    Gerenciando o RabbitMQ http://localhost:15672 •Conexões • Canais • Exchanges • Filas
  • 6.
    Gerenciando o RabbitMQ http://localhost:15672 •Conexões • Canais • Exchanges • Filas
  • 7.
    O que éo EasyNetQ? Biblioteca que simplifica a utilização do RabbitMQ • Open Source • Abstrai e simplifica a biblioteca RabbitMQ.Client • Possui APIs de utilização e gerenciamento • Utilizar vários patterns de mensageria • Publish/Subscribe, Send/Receive, Request/Response
  • 8.
    Pattern Publish/Subscribe • Producergera a mensagem, e todos os subscribers as recebem imediatamente • Se não houverem subscribers, a mensagem é descartada • Útil para notificações e tracing
  • 9.
    Pattern Request/Response • Producergera um request, que aciona o consumer • Um único consumer é acionado. Caso hajam múltiplos consumers, são acionados em round-robin • Client do producer pode aguardar síncronamente a resposta do consumer
  • 10.
    Pattern Send/Receive • Producergera uma mensagem, que é enfileirada • Consumer recebe a mensagem da fila, quando conectar • Múltiplos consumers são acionados em round-robin • Útil para cenários de distribuição de carga
  • 11.
    Demonstração Utilizando o EasyNetQpara produzir e consumir mensagens no RabbitMQ
  • 12.
  • 13.
    Período: 13/05 –24/05 Online via Microsoft Teams Horário: 19:00 – 23:00 10% off com o cupom desconto10 https://bit.ly/procoding-csharp-turma3
  • 14.
    Período: 27/05 –07/06 Online via Microsoft Teams Horário: 19:00 – 23:00 10% off com o cupom desconto10 https://bit.ly/procoding-mvc-turma3
  • 15.
    Período: 10/06 –21/06 Online via Microsoft Teams Horário: 19:00 – 23:00 10% off com o cupom desconto10 https://bit.ly/procoding-azws-turma3
  • 16.