SlideShare uma empresa Scribd logo
1 de 16
O Gerenciamento de fila com
RabbitMQ
Lucien Carbonare Jospin
Quem é Lucien Jospin?
➢Desenvolvimento WEB desde 2006;
➢Desenvolvimento para sistemas desde 2012
➢Desenvolvimento Mobile 2015
O que é RabbitMQ
➢ Gerenciador de fila: funciona como um intermediário garantindo a
entrega;
➢ Desenvolvido Earland
➢ Mensageria: Sistema que troca mensagem (message) broker
➢ Fila = Buffer que armazena para ser consumida
➢ AMPQ (Advanced Message Queuing Protocol)
○ Protocolo de comunicação de rede
○ Unificar tecnologias
Transmissão - Passos
➢ Create: Remetente cria a mensagem;
➢ Send: Adiciona ao canal;
➢ Deliver: Move do remetente e disponibiliza ao
receptor;
➢ Receive: Receptor da mensagem;
➢ Process: Extrai os dados da mensagem;
Cada sistema tem sua responsabilidade.
Responsabilidades definidas = reutilização
Estrutura base Rabbit
➢ Producer: Envia a mensagem;
➢ Queue: É um buffer que armazena as mensagens;
➢ Consumer: Um sistema para receber as mensagens;
➢ Exchange: Recebe a mensagem e entrega a fila;
➢ ACK (acknowledgments)
A Ideia central é que nenhum producer envie diretamente para a
fila sempre tenha a exchange gerenciando a entrega para a fila,
e ela saiba exatamente para qual fila entregar.
Exchange
A exchange é um algorítmo que determina qual fila deve
receber a mensagem.
➢Fanout
➢Direct
➢Default
➢Topic
Fanout
Envia cada mensagem para cada fila ligado ao exchange
Direct Exchange
Chave de roteamento identifica ao exchange a fila que a
mensagem deve ir.
Default Exchange
Todo exchange deve ter um nome. Caso não haja nome,
ela é uma exchange padrão.
➢Nome da fila como chave de ligação.
Topic Exchange
Usa chaves separadas por um delimitador que deve ser uma lista
de palavras, delimitada por pontos. Limitada a 255 bytes
Distribuing
➢Ideal para processos
demorados
➢Permite ter mais de um
consumer para a fila
distribuir
➢Agenda a tarefa para ser
executada mais tarde
➢Não utiliza exchange,
distribuindo igualmente
Sending to many
➢Entrega o trabalho a vários
consumers
➢As mensagens serão
direcionadas a todos as filas,
e cada um exercerá sua
tarefa à sua maneira.
➢Este é um modelo completo
producer; queue e consumers
com exchange gerenciando
➢Algoritmo fanout All for All
Routing
➢Pelo parâmetro routing_key a
exchange sabe para qual fila
deve enviar.
➢Algoritmo direct.
➢Permite mais liberdade para
os consumers trabalharem de
forma específica.
Topics
➢Permite o roteamento com
critério variado
➢Utiliza o algoritmo topic
➢A routing key deve ser uma
de uma lista de palavras
delimitadas por ponto.
➢Uma chave entrega para
todas as filas relacionadas.
➢* 1 palavra # 1 ou mais
palavras
Remote
procedure
➢O Producers envia para a fila
e o consumers responde para
outra fila
➢Parâmetro reply_to
determina para onde retorna
➢Parâmetro correlation_id
identifica a resposta como
sendo do mesmo pedido
Saiba mais
Link Blog Referências
https://www.rabbitmq.com/
https://access.redhat.com
http://www.gta.ufrj.br
https://github.com/videlalvaro

Mais conteúdo relacionado

Destaque

Beginning Microservices with .NET & RabbitMQ
Beginning Microservices with .NET & RabbitMQBeginning Microservices with .NET & RabbitMQ
Beginning Microservices with .NET & RabbitMQPaul Mooney
 
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Binary Studio
 
CQRS and Event Sourcing with Akka, Cassandra and RabbitMQ
CQRS and Event Sourcing with Akka, Cassandra and RabbitMQCQRS and Event Sourcing with Akka, Cassandra and RabbitMQ
CQRS and Event Sourcing with Akka, Cassandra and RabbitMQMiel Donkers
 
Micro Services in .NET Core and Docker
Micro Services in .NET Core and DockerMicro Services in .NET Core and Docker
Micro Services in .NET Core and Dockercjmyers
 
Microservice-based Architecture on the Salesforce App Cloud
Microservice-based Architecture on the Salesforce App CloudMicroservice-based Architecture on the Salesforce App Cloud
Microservice-based Architecture on the Salesforce App Cloudpbattisson
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .NetRichard Banks
 

Destaque (8)

RubyKaigi 2014: ServerEngine
RubyKaigi 2014: ServerEngineRubyKaigi 2014: ServerEngine
RubyKaigi 2014: ServerEngine
 
Beginning Microservices with .NET & RabbitMQ
Beginning Microservices with .NET & RabbitMQBeginning Microservices with .NET & RabbitMQ
Beginning Microservices with .NET & RabbitMQ
 
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
Building Microservices with .NET (speaker Anton Vasilenko, Binary Studio)
 
CQRS and Event Sourcing with Akka, Cassandra and RabbitMQ
CQRS and Event Sourcing with Akka, Cassandra and RabbitMQCQRS and Event Sourcing with Akka, Cassandra and RabbitMQ
CQRS and Event Sourcing with Akka, Cassandra and RabbitMQ
 
Micro Services in .NET Core and Docker
Micro Services in .NET Core and DockerMicro Services in .NET Core and Docker
Micro Services in .NET Core and Docker
 
Microservice-based Architecture on the Salesforce App Cloud
Microservice-based Architecture on the Salesforce App CloudMicroservice-based Architecture on the Salesforce App Cloud
Microservice-based Architecture on the Salesforce App Cloud
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
 
Microservices e RabbitMQ
Microservices e RabbitMQMicroservices e RabbitMQ
Microservices e RabbitMQ
 

Semelhante a Gerenciamento de fila com RabbitMQ

Tecnologias Atuais de Redes - Aula 4 - Comutação [Apostila]
Tecnologias Atuais de Redes - Aula 4 - Comutação [Apostila]Tecnologias Atuais de Redes - Aula 4 - Comutação [Apostila]
Tecnologias Atuais de Redes - Aula 4 - Comutação [Apostila]Ministério Público da Paraíba
 
Message Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQMessage Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQLuiz Carlos Faria
 
Servidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixServidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixAlvaro Oliveira
 
Redes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteRedes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteWellington Oliveira
 
A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - Fatree
A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - FatreeA SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - Fatree
A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - FatreeJoaquim Mussandi
 
Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02DP7
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internetMarco Pinheiro
 
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 EasyNetQRobson Rocha de Araújo
 
Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)Frederico Madeira
 
Redes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDPRedes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDPMauro Tapajós
 

Semelhante a Gerenciamento de fila com RabbitMQ (20)

SI - Comunicação
SI - ComunicaçãoSI - Comunicação
SI - Comunicação
 
Tecnologias Atuais de Redes - Aula 4 - Comutação [Apostila]
Tecnologias Atuais de Redes - Aula 4 - Comutação [Apostila]Tecnologias Atuais de Redes - Aula 4 - Comutação [Apostila]
Tecnologias Atuais de Redes - Aula 4 - Comutação [Apostila]
 
Message Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQMessage Broker & .Net Core - Introdução ao RabbitMQ
Message Broker & .Net Core - Introdução ao RabbitMQ
 
Módulo 02 modelo iso-osi
Módulo 02   modelo iso-osiMódulo 02   modelo iso-osi
Módulo 02 modelo iso-osi
 
Aula 2
Aula 2Aula 2
Aula 2
 
Gv redes industriais
Gv redes industriaisGv redes industriais
Gv redes industriais
 
Servidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixServidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e Postfix
 
Conceitos de rede
Conceitos de redeConceitos de rede
Conceitos de rede
 
Redes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de TransporteRedes de Computadores Capítulo 6 - Camada de Transporte
Redes de Computadores Capítulo 6 - Camada de Transporte
 
Trabalho camada de transporte
Trabalho camada de transporteTrabalho camada de transporte
Trabalho camada de transporte
 
Exercícios
ExercíciosExercícios
Exercícios
 
MPLS
MPLSMPLS
MPLS
 
A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - Fatree
A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - FatreeA SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - Fatree
A SCALABLE, COMMODITY DATA CENTER NETWORK ARCHITECTURE - Fatree
 
Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02Unidade1ainternet 110928173442-phpapp02
Unidade1ainternet 110928173442-phpapp02
 
funcionamento da internet
funcionamento da internetfuncionamento da internet
funcionamento da internet
 
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
 
Apo redes
Apo redesApo redes
Apo redes
 
Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)
 
Redes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDPRedes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDP
 
Hornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de MensageriaHornet - 1.Conceitos de Mensageria
Hornet - 1.Conceitos de Mensageria
 

Gerenciamento de fila com RabbitMQ

  • 1. O Gerenciamento de fila com RabbitMQ Lucien Carbonare Jospin
  • 2. Quem é Lucien Jospin? ➢Desenvolvimento WEB desde 2006; ➢Desenvolvimento para sistemas desde 2012 ➢Desenvolvimento Mobile 2015
  • 3. O que é RabbitMQ ➢ Gerenciador de fila: funciona como um intermediário garantindo a entrega; ➢ Desenvolvido Earland ➢ Mensageria: Sistema que troca mensagem (message) broker ➢ Fila = Buffer que armazena para ser consumida ➢ AMPQ (Advanced Message Queuing Protocol) ○ Protocolo de comunicação de rede ○ Unificar tecnologias
  • 4. Transmissão - Passos ➢ Create: Remetente cria a mensagem; ➢ Send: Adiciona ao canal; ➢ Deliver: Move do remetente e disponibiliza ao receptor; ➢ Receive: Receptor da mensagem; ➢ Process: Extrai os dados da mensagem; Cada sistema tem sua responsabilidade. Responsabilidades definidas = reutilização
  • 5. Estrutura base Rabbit ➢ Producer: Envia a mensagem; ➢ Queue: É um buffer que armazena as mensagens; ➢ Consumer: Um sistema para receber as mensagens; ➢ Exchange: Recebe a mensagem e entrega a fila; ➢ ACK (acknowledgments) A Ideia central é que nenhum producer envie diretamente para a fila sempre tenha a exchange gerenciando a entrega para a fila, e ela saiba exatamente para qual fila entregar.
  • 6. Exchange A exchange é um algorítmo que determina qual fila deve receber a mensagem. ➢Fanout ➢Direct ➢Default ➢Topic
  • 7. Fanout Envia cada mensagem para cada fila ligado ao exchange
  • 8. Direct Exchange Chave de roteamento identifica ao exchange a fila que a mensagem deve ir.
  • 9. Default Exchange Todo exchange deve ter um nome. Caso não haja nome, ela é uma exchange padrão. ➢Nome da fila como chave de ligação.
  • 10. Topic Exchange Usa chaves separadas por um delimitador que deve ser uma lista de palavras, delimitada por pontos. Limitada a 255 bytes
  • 11. Distribuing ➢Ideal para processos demorados ➢Permite ter mais de um consumer para a fila distribuir ➢Agenda a tarefa para ser executada mais tarde ➢Não utiliza exchange, distribuindo igualmente
  • 12. Sending to many ➢Entrega o trabalho a vários consumers ➢As mensagens serão direcionadas a todos as filas, e cada um exercerá sua tarefa à sua maneira. ➢Este é um modelo completo producer; queue e consumers com exchange gerenciando ➢Algoritmo fanout All for All
  • 13. Routing ➢Pelo parâmetro routing_key a exchange sabe para qual fila deve enviar. ➢Algoritmo direct. ➢Permite mais liberdade para os consumers trabalharem de forma específica.
  • 14. Topics ➢Permite o roteamento com critério variado ➢Utiliza o algoritmo topic ➢A routing key deve ser uma de uma lista de palavras delimitadas por ponto. ➢Uma chave entrega para todas as filas relacionadas. ➢* 1 palavra # 1 ou mais palavras
  • 15. Remote procedure ➢O Producers envia para a fila e o consumers responde para outra fila ➢Parâmetro reply_to determina para onde retorna ➢Parâmetro correlation_id identifica a resposta como sendo do mesmo pedido
  • 16. Saiba mais Link Blog Referências https://www.rabbitmq.com/ https://access.redhat.com http://www.gta.ufrj.br https://github.com/videlalvaro