SlideShare uma empresa Scribd logo
1 de 15
Utilizando filas e o
RabbitMQ
Diego Teixeira
Apoio
Apoio
Compartilhar
#rpteccom
O que é queue?
• Queue é o termo em inglês para fila
• Fila é o mesmo que vemos no cotidiano (banco,
lotérica, entrada de shows, etc)
• A fila utiliza o conceito de FIFO (First-In-First-Out):
o primeiro a entrar
é o primeiro a sair
A fila na vida real
• Como funciona o banco na vida real
• Como seria o banco sem a fila?
Motivos para usar fila
• As filas oferecem a possibilidade de:
• Desacoplamento do banco de dados
• Processamento assíncrono
• Distribuição do processamento
• Distribuição para vários receptores
O AMQP e o RabbitMQ
• Advanced Message Queuing Protocol (Protocolo de
enfileiramento de mensagens avançado)
• Protocolo que especifica um padrão internacional
para o envio e recebimento de mensagens
• RabbitMQ é um software de código aberto que
implementa o AMQP. Através do RabbitMQ, é possível
criar aplicações que utilizam o envio e recebimento de
mensagens para satisfazer suas necessidades
Começando a usar o RabbitMQ
• Queues (Filas)
Utilizando o exchange
• Exchange (Trocas)
• Fanout (Espalhadas)
• Direct (Diretas)
• Topic (Tópicos)
• Header (Cabeçalhos)
Exchange Fanout
Exchange Direct
Exemplo
Dúvidas?
Obrigado!
diteix
https://github.com/diteix/TesteRabbitMQ
diteix
Diego Teixeira

Mais conteúdo relacionado

Semelhante a Filas RabbitMQ desacoplam banco dados

Arp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de AtaquesArp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de AtaquesAndre Peres
 
Apresentacao
ApresentacaoApresentacao
Apresentacaopcassio23
 
Aula podium redes e internet 2016
Aula podium redes e internet 2016Aula podium redes e internet 2016
Aula podium redes e internet 2016Aucionio Miranda
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfINTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfIvanSaboia1
 
O Mundo Do Mainframe
O Mundo Do MainframeO Mundo Do Mainframe
O Mundo Do Mainframelui_fp
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesMauro Pereira
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5Helder da Rocha
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonIP10
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Jonh Edson
 
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
 

Semelhante a Filas RabbitMQ desacoplam banco dados (20)

Arp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de AtaquesArp e DNS Spoof - Prática de Ataques
Arp e DNS Spoof - Prática de Ataques
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
04 Introdução a Redes
04   Introdução a Redes04   Introdução a Redes
04 Introdução a Redes
 
Mainframe uma breve história
Mainframe uma breve históriaMainframe uma breve história
Mainframe uma breve história
 
Questionario de internet
Questionario de internetQuestionario de internet
Questionario de internet
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Criação de uma rede
Criação de uma redeCriação de uma rede
Criação de uma rede
 
Aula podium redes e internet 2016
Aula podium redes e internet 2016Aula podium redes e internet 2016
Aula podium redes e internet 2016
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdfINTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
INTRODUÇÃO AO DESENVOLVIMENTO DE EXPLOITS.pdf
 
O Mundo Do Mainframe
O Mundo Do MainframeO Mundo Do Mainframe
O Mundo Do Mainframe
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redes
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
Automatizando Nmap com NSE
Automatizando Nmap com NSEAutomatizando Nmap com NSE
Automatizando Nmap com NSE
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do Python
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
 
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
 
Filas e mensageria com RabbitMQ
Filas e mensageria com RabbitMQFilas e mensageria com RabbitMQ
Filas e mensageria com RabbitMQ
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Telnet
TelnetTelnet
Telnet
 

Mais de Matheus de Lara Calache

6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe munizMatheus de Lara Calache
 
5. apresentacao rp tec com 2018 matheus calache
5. apresentacao rp tec com 2018 matheus calache5. apresentacao rp tec com 2018 matheus calache
5. apresentacao rp tec com 2018 matheus calacheMatheus de Lara Calache
 
3. apresentacao rp tec com 2018 gustavo bernardes
3. apresentacao rp tec com 2018 gustavo bernardes3. apresentacao rp tec com 2018 gustavo bernardes
3. apresentacao rp tec com 2018 gustavo bernardesMatheus de Lara Calache
 
2. apresentacao rp tec com 2018 murilo neandro
2. apresentacao rp tec com 2018 murilo neandro2. apresentacao rp tec com 2018 murilo neandro
2. apresentacao rp tec com 2018 murilo neandroMatheus de Lara Calache
 
Aula 5 - Gerenciamento de Recursos Humanos e Lideranca
Aula 5 - Gerenciamento de Recursos Humanos e LiderancaAula 5 - Gerenciamento de Recursos Humanos e Lideranca
Aula 5 - Gerenciamento de Recursos Humanos e LiderancaMatheus de Lara Calache
 
Aula 2 - Fundamentos em Gerenciamento de Projetos
Aula 2 - Fundamentos em Gerenciamento de ProjetosAula 2 - Fundamentos em Gerenciamento de Projetos
Aula 2 - Fundamentos em Gerenciamento de ProjetosMatheus de Lara Calache
 

Mais de Matheus de Lara Calache (16)

6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
 
7. encerramento rp tec com 2018
7. encerramento rp tec com 20187. encerramento rp tec com 2018
7. encerramento rp tec com 2018
 
5. apresentacao rp tec com 2018 matheus calache
5. apresentacao rp tec com 2018 matheus calache5. apresentacao rp tec com 2018 matheus calache
5. apresentacao rp tec com 2018 matheus calache
 
3. apresentacao rp tec com 2018 gustavo bernardes
3. apresentacao rp tec com 2018 gustavo bernardes3. apresentacao rp tec com 2018 gustavo bernardes
3. apresentacao rp tec com 2018 gustavo bernardes
 
2. apresentacao rp tec com 2018 murilo neandro
2. apresentacao rp tec com 2018 murilo neandro2. apresentacao rp tec com 2018 murilo neandro
2. apresentacao rp tec com 2018 murilo neandro
 
1. introducao rp tec com 2018
1. introducao rp tec com 20181. introducao rp tec com 2018
1. introducao rp tec com 2018
 
Aula 8 - Gerenciamento da Comunicação
Aula 8 - Gerenciamento da ComunicaçãoAula 8 - Gerenciamento da Comunicação
Aula 8 - Gerenciamento da Comunicação
 
Aula 7 - Gerenciamento de Qualidade
Aula 7 - Gerenciamento de QualidadeAula 7 - Gerenciamento de Qualidade
Aula 7 - Gerenciamento de Qualidade
 
Aula 6 - Gerenciamento de Qualidade
Aula 6 - Gerenciamento de QualidadeAula 6 - Gerenciamento de Qualidade
Aula 6 - Gerenciamento de Qualidade
 
Aula 6 - Gerenciamento de Escopo
Aula 6 - Gerenciamento de EscopoAula 6 - Gerenciamento de Escopo
Aula 6 - Gerenciamento de Escopo
 
Aula 5 - Gerenciamento de Recursos Humanos e Lideranca
Aula 5 - Gerenciamento de Recursos Humanos e LiderancaAula 5 - Gerenciamento de Recursos Humanos e Lideranca
Aula 5 - Gerenciamento de Recursos Humanos e Lideranca
 
Aula 4 - PDCA
Aula 4 - PDCAAula 4 - PDCA
Aula 4 - PDCA
 
Aula 4 - Gerenciamento de integracao
Aula 4 - Gerenciamento de integracaoAula 4 - Gerenciamento de integracao
Aula 4 - Gerenciamento de integracao
 
Aula 3 - Gerenciamento de riscos
Aula 3 - Gerenciamento de riscosAula 3 - Gerenciamento de riscos
Aula 3 - Gerenciamento de riscos
 
Aula 2 - Fundamentos em Gerenciamento de Projetos
Aula 2 - Fundamentos em Gerenciamento de ProjetosAula 2 - Fundamentos em Gerenciamento de Projetos
Aula 2 - Fundamentos em Gerenciamento de Projetos
 
Aula 1 - Introdução
Aula 1 - IntroduçãoAula 1 - Introdução
Aula 1 - Introdução
 

Filas RabbitMQ desacoplam banco dados

  • 1. Utilizando filas e o RabbitMQ Diego Teixeira
  • 5. O que é queue? • Queue é o termo em inglês para fila • Fila é o mesmo que vemos no cotidiano (banco, lotérica, entrada de shows, etc) • A fila utiliza o conceito de FIFO (First-In-First-Out): o primeiro a entrar é o primeiro a sair
  • 6. A fila na vida real • Como funciona o banco na vida real • Como seria o banco sem a fila?
  • 7. Motivos para usar fila • As filas oferecem a possibilidade de: • Desacoplamento do banco de dados • Processamento assíncrono • Distribuição do processamento • Distribuição para vários receptores
  • 8. O AMQP e o RabbitMQ • Advanced Message Queuing Protocol (Protocolo de enfileiramento de mensagens avançado) • Protocolo que especifica um padrão internacional para o envio e recebimento de mensagens • RabbitMQ é um software de código aberto que implementa o AMQP. Através do RabbitMQ, é possível criar aplicações que utilizam o envio e recebimento de mensagens para satisfazer suas necessidades
  • 9. Começando a usar o RabbitMQ • Queues (Filas)
  • 10. Utilizando o exchange • Exchange (Trocas) • Fanout (Espalhadas) • Direct (Diretas) • Topic (Tópicos) • Header (Cabeçalhos)

Notas do Editor

  1. Cliente chega no banco, entra na fila, cada cliente é direcionado ao caixa vazio quando chega sua vez de ser o primeiro da fila Pensando em uma estrutura de software, cada caixa deveria saber que está vazio e buscar um cliente que disse que precisava fazer algo. Se não houvesse um cliente no momento, o caixa deveria ficar repetindo o ciclo de buscar o cliente até encontrar um
  2. Tudo depende da necessidade de cada projeto e a correta análise para que sejam levantados todos os prós e contras ao implementar ou não as filas
  3. Um sistema Produtor envia a mensagem diretamente para uma fila, onde um sistema Consumidor recebe a mensagem dessa fila e a consome
  4. Exchange - pode ser comparado com o serviço dos correios, onde a instituição Correio é o “exchange”, que recebe as cartas/mensagens, descobre qual é a área de entrega, e entrega para o carteiro/fila a carta/mensagem, que entrega para o destinatário Fanout - as mensagens são enviadas apenas uma vez cada uma para o exchange e são replicadas para todas as filas que tiverem ligadas aquele exchange Direct - através de uma chave de roteamento (routing key), as mensagens são direcionadas específica e diretamente através do exchange somente para a fila que tiver a mesma chave de roteamento dessa mensagem Topic - através de uma chave de roteamento (routing key), as mensagens são direcionadas para todas as filas que esperam aquela chave ou utilizam os caracteres especiais “*” e “#” para filtrar as mensagens Header - através de cabeçalhos (headers), ao invés da chave de roteamento (routing key), as mensagens são direcionadas para as filas que utilizam o cabeçalho “x-match” com o valor “any” para receber todas as mensagens em que pelo menos um cabeçalho esteja entre os especificados pela fila, ou o valor “all” para receber todas as mensagens em que todos os cabeçalhos estejam entre os especificados pela fila
  5. Exchange - pode ser comparado com o serviço dos correios, onde a instituição Correio é o “exchange”, que recebe as cartas/mensagens, descobre qual é a área de entrega, e entrega para o carteiro/fila a carta/mensagem, que entrega para o destinatário
  6. Exchange - pode ser comparado com o serviço dos correios, onde a instituição Correio é o “exchange”, que recebe as cartas/mensagens, descobre qual é a área de entrega, e entrega para o carteiro/fila a carta/mensagem, que entrega para o destinatário