SlideShare uma empresa Scribd logo
Request
Response
Client Server
App1 App2
Escalabilidade
Entrega
Flexível
Sistemas Distribuídos
• O que é um message broker
• É um tipo de Resource Sharing exclusivo para troca de mensagens: Um Mediador!
• Possui features exclusivas para aumentar resiliência, escalabilidade e confiabilidade
App1
App2
App2
Message Broker
App2
Exchange
Queue
Queue
Exchange
Queue
Queue
Exchange
Queue
Queue
All the charts and statistics shown were measured on a PowerEdge R610 with dual Xeon E5530s and 40GB RAM.
Deployment Windows
Linux
MacOS
Chef, Puppet e Docker
Amazon EC2, Cloud Fondry, Pivotal Cloud Foundry,
CloudAMQP
Deployment
Strategies Cluster
Federation
https://www.rabbitmq.com/clustering.html
https://www.rabbitmq.com/distributed.html
Fim!Não!
https://www.rabbitmq.com/tutorials/amqp-concepts.html
Fila pode ser
• Durável: Sobrevive ao restart do message broker
• Exclusiva: Somente 1 consumidor + Morre quando não há consumidores
• Auto Delete: Morre quando não há consumidores
Exchange Types - Direct
A mensagem é roteada para a
fila com mesmo nome usado na
Rounting Key
https://www.rabbitmq.com/tutorials/amqp-concepts.html
Bind
Exchange Types - Fanout
A mensagem é roteada para
todas as filas sem respeitar
nenhum critério.
https://www.rabbitmq.com/tutorials/amqp-concepts.html
Exchange Types - Topic
Roteamento baseado em
Routing Key
https://www.rabbitmq.com/tutorials/amqp-concepts.html
Exchange Types - Headers
Ignora Routing Key
Utiliza Headers para fazer
match
Estratégia de match any/all é
configurável.
https://www.rabbitmq.com/tutorials/amqp-concepts.html
Exchange pode ser
• Durável: Sobrevivem ao restart do message broker
• Auto Delete: Morre quando não filas associadas
https://www.rabbitmq.com/tutorials/amqp-concepts.html
https://github.com/luizcarlosfaria/CanalDotNet-MessageBroker
https://github.com/luizcarlosfaria/devweek2017--ci-cd-jenkins-netcore
Patterns
Pipeline
• Utilizar diversas filas para processar partes de uma macro-tarefa, de forma linear.
Patterns
Anonymous Queue
• Geralmente também são exclusivas
• Geralmente o próprio consumer que criou a fila configura o binding entre a fila e a
Exchange.
• Evita necessidade de Service Discovery
• Pode ser usado para escutar eventos por um determinado período ou enquanto
estiver online (como um segundo listener, provavelmente com level debug ou
trace, para logs de produção, supondo que o logger padrão de produção esteja
configurado para armazenar somente Avisos, Erros ou fatal).
https://www.rabbitmq.com/tutorials/tutorial-six-python.html
Patterns
RPC
• O “cliente” cria uma fila sem nome.
• No ato da criação o RabbitMQ responde com um nome dinâmico (parecido com um GUID).
• O “cliente” envia a mensagem para uma Exchange pré-definida, mas adiciona o nome da fila de resposta no header da
mensagem.
• O “server” recebe a mensagem e processa, ao final, caso encontre o campo ReplyTo na mensagem, envia a resposta para a
fila de resposta.
Patterns
Anonymous Queue
• Geralmente também são exclusivas
• Evita necessidade de service Discovery
• O próprio cliente que criou a fila, geralmente realiza configura o binding para a fila
adequada.
Patterns
Shared Queue
• Uma fila, com vários consumers.
• Excelente para garantir alta disponibilidade e escalabilidade
• Geralmente a fila, Exchange, filas e bindings são pré-configurados (manualmente
ou automaticamente)

Mais conteúdo relacionado

Mais procurados

Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
Claudio Miranda
 
Instalação Servidor LAMP - Ubuntu serve
Instalação Servidor LAMP - Ubuntu serveInstalação Servidor LAMP - Ubuntu serve
Instalação Servidor LAMP - Ubuntu serve
Diogo Jhony
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
Claudio Miranda
 
AWS 101 - VBronwBag Brasil
AWS 101 - VBronwBag BrasilAWS 101 - VBronwBag Brasil
AWS 101 - VBronwBag Brasil
Diego Veríssimo Lakatos
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na Nuvem
Saveincloud
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
Saveincloud
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginx
Saveincloud
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
Bruno Luiz Pereira da Silva
 
Messaging Pattern
Messaging PatternMessaging Pattern
Messaging Pattern
José Eduardo Porto
 
PHP FrameWARks - CakePHP
PHP FrameWARks - CakePHPPHP FrameWARks - CakePHP
PHP FrameWARks - CakePHP
Marcio Albuquerque
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
Adriano Schmidt
 
Ad server cassandra
Ad server cassandraAd server cassandra
Ad server cassandradist_bp
 
Lançamento KES e Security Center
Lançamento KES e Security CenterLançamento KES e Security Center
Lançamento KES e Security CenterCentral Info
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com Java
Alisson Pedrina
 
TDC 2011 - HornetQ e SwitchYard
TDC 2011 - HornetQ e SwitchYardTDC 2011 - HornetQ e SwitchYard
TDC 2011 - HornetQ e SwitchYardSamuel Tauil
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
Adriano Schmidt
 
Utilizando RabbitMQ com .NET Core e EasyNetQ
Utilizando RabbitMQ com .NET Core e EasyNetQUtilizando RabbitMQ com .NET Core e EasyNetQ
Utilizando RabbitMQ com .NET Core e EasyNetQ
Robson Rocha de Araújo
 
SQL Server over SMB3
SQL Server over SMB3SQL Server over SMB3
SQL Server over SMB3
Fabrício Catae
 

Mais procurados (20)

Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 
Instalação Servidor LAMP - Ubuntu serve
Instalação Servidor LAMP - Ubuntu serveInstalação Servidor LAMP - Ubuntu serve
Instalação Servidor LAMP - Ubuntu serve
 
Performance em Java
Performance em JavaPerformance em Java
Performance em Java
 
AWS 101 - VBronwBag Brasil
AWS 101 - VBronwBag BrasilAWS 101 - VBronwBag Brasil
AWS 101 - VBronwBag Brasil
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na Nuvem
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
 
Escalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginxEscalabilidade e alta disponibilidade no php com nginx
Escalabilidade e alta disponibilidade no php com nginx
 
NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
 
Messaging Pattern
Messaging PatternMessaging Pattern
Messaging Pattern
 
PHP FrameWARks - CakePHP
PHP FrameWARks - CakePHPPHP FrameWARks - CakePHP
PHP FrameWARks - CakePHP
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Ad server cassandra
Ad server cassandraAd server cassandra
Ad server cassandra
 
Lançamento KES e Security Center
Lançamento KES e Security CenterLançamento KES e Security Center
Lançamento KES e Security Center
 
Livro cisco
Livro ciscoLivro cisco
Livro cisco
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com Java
 
TDC 2011 - HornetQ e SwitchYard
TDC 2011 - HornetQ e SwitchYardTDC 2011 - HornetQ e SwitchYard
TDC 2011 - HornetQ e SwitchYard
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
 
Utilizando RabbitMQ com .NET Core e EasyNetQ
Utilizando RabbitMQ com .NET Core e EasyNetQUtilizando RabbitMQ com .NET Core e EasyNetQ
Utilizando RabbitMQ com .NET Core e EasyNetQ
 
SQL Server over SMB3
SQL Server over SMB3SQL Server over SMB3
SQL Server over SMB3
 

Semelhante a Message Broker & .Net Core - Introdução ao RabbitMQ

Kafka: Uma introdução para Desenvolvedores e Arquitetos
 Kafka: Uma introdução para Desenvolvedores e Arquitetos Kafka: Uma introdução para Desenvolvedores e Arquitetos
Kafka: Uma introdução para Desenvolvedores e Arquitetos
Victor Osorio
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
Leandro Silva
 
Protocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das CoisasProtocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das Coisas
Nathalia Sautchuk Patricio
 
Mq conceitos melhores_praticas_parte_ii
Mq conceitos melhores_praticas_parte_iiMq conceitos melhores_praticas_parte_ii
Mq conceitos melhores_praticas_parte_ii
MoisesInacio
 
Aws sao paulo summit 2015 elasti cache avancado
Aws sao paulo summit 2015   elasti cache avancadoAws sao paulo summit 2015   elasti cache avancado
Aws sao paulo summit 2015 elasti cache avancado
Amazon Web Services LATAM
 
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Leandro Gomes
 
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceVMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceLeandro Magnabosco
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvem
Amazon Web Services LATAM
 
Net::RabbitMQ(::Simple)
Net::RabbitMQ(::Simple)Net::RabbitMQ(::Simple)
Net::RabbitMQ(::Simple)Thiago Rondon
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2Eric Lemes
 
JBoss Clustering
JBoss ClusteringJBoss Clustering
JBoss Clustering
Marcio Marinho
 
Escalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuáriosEscalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuários
Amazon Web Services LATAM
 
Aula 2 - IRL
Aula 2 - IRLAula 2 - IRL
Aula 2 - IRL
Henrique Quirino
 
Rede
Rede Rede
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
Marcelo Dieder
 
Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na Web
Rafael Chagas
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNA
wolkartt_18
 

Semelhante a Message Broker & .Net Core - Introdução ao RabbitMQ (20)

Kafka: Uma introdução para Desenvolvedores e Arquitetos
 Kafka: Uma introdução para Desenvolvedores e Arquitetos Kafka: Uma introdução para Desenvolvedores e Arquitetos
Kafka: Uma introdução para Desenvolvedores e Arquitetos
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 
Protocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das CoisasProtocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das Coisas
 
Hornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de MensageriaHornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de Mensageria
 
Mq conceitos melhores_praticas_parte_ii
Mq conceitos melhores_praticas_parte_iiMq conceitos melhores_praticas_parte_ii
Mq conceitos melhores_praticas_parte_ii
 
Aws sao paulo summit 2015 elasti cache avancado
Aws sao paulo summit 2015   elasti cache avancadoAws sao paulo summit 2015   elasti cache avancado
Aws sao paulo summit 2015 elasti cache avancado
 
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
 
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion ToleranceVMFIT - Virtual Machine-based Fault and Intrusion Tolerance
VMFIT - Virtual Machine-based Fault and Intrusion Tolerance
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 
Rodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvemRodando a BlackFriday do seu eCommerce na nuvem
Rodando a BlackFriday do seu eCommerce na nuvem
 
Net::RabbitMQ(::Simple)
Net::RabbitMQ(::Simple)Net::RabbitMQ(::Simple)
Net::RabbitMQ(::Simple)
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2
 
JBoss Clustering
JBoss ClusteringJBoss Clustering
JBoss Clustering
 
Escalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuáriosEscalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuários
 
Aula 2 - IRL
Aula 2 - IRLAula 2 - IRL
Aula 2 - IRL
 
Rede
Rede Rede
Rede
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na Web
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNA
 

Message Broker & .Net Core - Introdução ao RabbitMQ