SlideShare uma empresa Scribd logo
1 de 31
Introdução a Sistemas Distribuídos
HandsON ­ Exemplo de utilização 
de SQS e SNS
Eduardo de Lucena Falcão
Queues are Everywhere
Notifications are Everywhere
Componentes AWS para Troca de
Mensagens
Quebrando nosso Sistema em
Componentes
● Se encaixa bem em sistemas que tenham componentes
no estilo produtor-consumidor.
– Pode ser um ou vários componentes produtores, e um
ou vários componentes consumidores.
Evite a Sobrecarga
● Eventualmente, seu serviço ficará sobrecarregado.
– Podemos tratar a sobrecarga sem escalar nossos
servidores, caso seja pertinente.
Evite Sobrecarga com Filas SQS
● Modifique seu produtor para enviar mensagens para as
filas SQS;
● Evite falhas: processe apenas o que conseguir naquele
momento; posteriormente, em momentos de baixa
demanda, processe o restante das mensagens.
Use Filas SQS
Use Filas SQS
● As filas SQS armazenam suas mensagens de maneira duradoura até que você
as processe. Quando as mensagens são lidas elas não são automaticamente
removidas, mas são configuradas como invisível, para que nenhum outro
componente a processe repetidamente.
– A invisibilidade é definida por um visibility timeout que por padrão tem valor
30 segundos.
● Uma vez processadas as mensagens, você deve removê-la explicitamente da
fila SQS. Caso contrário, a mensagem tornar-se-á disponível novamente na fila
para que outros componentes a processem.
SQS dá Suporte a Alta Vazão de
Mensagens
SQS dá Suporte a Alta Vazão de
Mensagens
● É possível ter vários “produtores” escrevendo na fila em um mesmo momento.
O SQS irá fazer de tudo para manter a ordem delas, mas a natureza distribuída
torna impossível garanti-la 100%.
– Se for extremamente necessário, adicione um identificador à sua
mensagem.
– A ordem aproximada é suficiente na maioria dos casos.
● É possível ter vários “consumidores”. A leitura de uma mensagem pelos
consumidores é atômica.
– Estratégias de para evitar dead lock são utilizadas pela SQS para prevenir
múltiplos consumidores de ler uma mesma mensagem.
SQS como um Buffer
● E se o serviço “cair” temporariamente, ou tiver de ser
reiniciado?
– Não tem problema. A fila pode absorver essas
mensagens, funcionando como um Buffer.
SQS como um Buffer
● Quanto o sistema voltar a seu funcionamento pleno, as
processará rapidamente.
SQS – Principais Características
● Provê alta durabilidade;
● Mantém as mensagens até as
deletarmos explicitamente;
● Se não consumidas as
mensagens são armazenadas por
4 dias (padrão), mas podem ser
armazenadas por até 14 dias;
● É possível utilizar alertas do
Amazon CloudWatch para
monitorar quantidade de
mensagens, taxa de mensagens
em um dado tempo, etc.
SQS - Preço Geral
● 100.000 mensagens de graça
por mês para todos;
● $1,00 a cada 1.000.000 de
requisições;
Componentes AWS para Troca de
Mensagens
Introdução ao SNS
● Se encaixa bem em sistemas que tenham componentes
no estilo produtor-consumidor.
– A ideia é que um produtor envie mensagens idênticas
a vários serviços.
Evite a Sobrecarga
● Eventualmente, o produtor que produzir conteúdo
popular para vários serviços ficará sobrecarregado
quando precisar entregar essas mensagens a eles.
Evite a Sobrecarga com Tópicos
SNS
● Tópicos SNS desacoplam os produtores dos serviços que
consomem suas mensagens.
● Tópicos SNS permitem você enviar mensagens idênticas a vários
serviços em paralelo.
– Produtores publicam as mensagens nos tópicos SNS uma única
vez, e o SNS é encarregado de distribuir uma cópia idêntica
desta mensagem para os serviços inscritos naquele tópico.
Transparência na Entrega das
Mensagens
● Podemos entregar as mensagens por diferentes
protocolos, não precisamos no preocupar em como elas
serão entregues.
SNS – Principais Características
● Quantidade de inscritos ilimitadas: envie
mensagens para quantos subscribers
desejar;
● Suporte transparente a vários
protocolos: Amazon SQS, HTTP, e-mail,
SMS;
● Políticas de envio customizáveis
segundo sua aplicação (tentativas, taxa
de mensagens em dado tempo);
● É possível utilizar alertas do Amazon
CloudWatch para monitorar quantidade
de mensagens, taxa de mensagens em
um dado tempo, etc.
SNS - Preço Geral
● Preço para adicionar mensagens ao
Tópicos SNS:
– 100.000 mensagens de graça por mês
para todos;
– $0,60 a cada 1.000.000 de mensagens
adicionadas ao SNS;
● Preço de entrega das mensagens aos
inscritos no Tópico SNS:
Comparação
Exemplo I - SQS
● Processamento de imagens
Exemplo II - SQS
● Processamento de PDFs com prioridade (Marvia)
– Arquitetura Inicial
Exemplo II - SQS
● Processamento de PDFs com prioridade (Marvia)
– Arquitetura Final com SQS: QoS - Quality of Service
Exemplo II - SNS
● Monitoramento do status do processamento do PDF (Marvia)
● Uma das partes básicas que está faltando no Marvia é a
notificação ao cliente de quando o seu PDF estará pronto.
Vamos olhar novamente o gráfico do slide anterior. É possível
perceber que todo o ciclo, desde o pedido do cliente para a
criação do PDF, passando pelas SQS até o processamento do
mesmo pelas instâncias ocorre bem. Mas não existe um meio do
cliente saber o momento exato de que seu PDF está pronto. Um
meio seria criar tópicos SNS para cada clientes, e assim que o
PDF estiver pronto, enviamos uma notificação para o mesmo via
e-mail ou outro protocolo.
Exemplo III – SNS + SQS
●
Padrão de arquitetura “fanout”
●
Ao usar este padrão podemos
construir sistemas que tirem
vantagem de processamento
paralelo assíncrono.
● Por exemplo, seria possível
publicar uma mensagem a um
tópico SNS cada vez que
tivermos um novo upload de
imagem. Processos
independentes receberão de
maneira automática essa
mensagem e executarão suas
atividades de forma paralela.
Exemplo Prático
25/05/2013 30
Referências
● Amazon Web Services. http://aws.amazon.com/pt/
(Acesso: abril/2013).
● Baseado em “AWS Messaging: Amazon SQS and SNS”.
Acessado em 06/2013. Url:
http://java.dzone.com/articles/aws-messaging-amazon-s
qs-and
● Vliet, J., and Paganelli, F.; Programming Amazon EC2.
O'Reilly.
25/05/2013 31
Dúvidas
https://sites.google.com/site/introsistemasdistribuidos/
Eduardo de Lucena Falcão
eduardolfalcao@gmail.com
@dudufalcao

Mais conteúdo relacionado

Mais procurados

Building Cloud Native Architectures with Spring
Building Cloud Native Architectures with SpringBuilding Cloud Native Architectures with Spring
Building Cloud Native Architectures with SpringKenny Bastani
 
SpringBoot 3 Observability
SpringBoot 3 ObservabilitySpringBoot 3 Observability
SpringBoot 3 ObservabilityKnoldus Inc.
 
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...Simplilearn
 
Using Jenkins and Jmeter to build a scalable Load Testing solution
Using Jenkins and Jmeter to build a scalable Load Testing solutionUsing Jenkins and Jmeter to build a scalable Load Testing solution
Using Jenkins and Jmeter to build a scalable Load Testing solutionRuslan Strazhnyk
 
Best Practices of Infrastructure as Code with Terraform
Best Practices of Infrastructure as Code with TerraformBest Practices of Infrastructure as Code with Terraform
Best Practices of Infrastructure as Code with TerraformDevOps.com
 
12 factor app an introduction
12 factor app an introduction12 factor app an introduction
12 factor app an introductionKrishna-Kumar
 
REST API debate: OData vs GraphQL vs ORDS
REST API debate: OData vs GraphQL vs ORDSREST API debate: OData vs GraphQL vs ORDS
REST API debate: OData vs GraphQL vs ORDSSumit Sarkar
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises Kasun Indrasiri
 
Agile DevOps Transformation Strategy
Agile DevOps Transformation StrategyAgile DevOps Transformation Strategy
Agile DevOps Transformation StrategySatish Nath
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services ArchitectureAraf Karsh Hamid
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsGlobalLogic Ukraine
 
Elastic Observability
Elastic Observability Elastic Observability
Elastic Observability FaithWestdorp
 
Grafana introduction
Grafana introductionGrafana introduction
Grafana introductionRico Chen
 

Mais procurados (20)

Building Cloud Native Architectures with Spring
Building Cloud Native Architectures with SpringBuilding Cloud Native Architectures with Spring
Building Cloud Native Architectures with Spring
 
SpringBoot 3 Observability
SpringBoot 3 ObservabilitySpringBoot 3 Observability
SpringBoot 3 Observability
 
New relic
New relicNew relic
New relic
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
Jenkins Pipeline Tutorial | Jenkins Build And Delivery Pipeline | Jenkins Tut...
 
Using Jenkins and Jmeter to build a scalable Load Testing solution
Using Jenkins and Jmeter to build a scalable Load Testing solutionUsing Jenkins and Jmeter to build a scalable Load Testing solution
Using Jenkins and Jmeter to build a scalable Load Testing solution
 
Best Practices of Infrastructure as Code with Terraform
Best Practices of Infrastructure as Code with TerraformBest Practices of Infrastructure as Code with Terraform
Best Practices of Infrastructure as Code with Terraform
 
12 factor app an introduction
12 factor app an introduction12 factor app an introduction
12 factor app an introduction
 
REST API debate: OData vs GraphQL vs ORDS
REST API debate: OData vs GraphQL vs ORDSREST API debate: OData vs GraphQL vs ORDS
REST API debate: OData vs GraphQL vs ORDS
 
Microservices for Enterprises
Microservices for Enterprises Microservices for Enterprises
Microservices for Enterprises
 
Agile DevOps Transformation Strategy
Agile DevOps Transformation StrategyAgile DevOps Transformation Strategy
Agile DevOps Transformation Strategy
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Azure camp
Azure campAzure camp
Azure camp
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
 
Elastic Observability
Elastic Observability Elastic Observability
Elastic Observability
 
Grafana introduction
Grafana introductionGrafana introduction
Grafana introduction
 
02 api gateway
02 api gateway02 api gateway
02 api gateway
 
AWS CDK Introduction
AWS CDK IntroductionAWS CDK Introduction
AWS CDK Introduction
 

Semelhante a Aula 8 - Comunicação entre Componentes com SQS e SNS

Iniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSIniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSAmazon Web Services LATAM
 
Sistemas operacionais de redes II
Sistemas operacionais de redes IISistemas operacionais de redes II
Sistemas operacionais de redes IIDaniel Brandão
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Arthur Emanuel
 
Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaDaniel Silveira
 
Arquitetura orientada a eventos
Arquitetura orientada a eventosArquitetura orientada a eventos
Arquitetura orientada a eventosBruno Roldão
 
Tópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaTópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaLuiz Arthur
 
Cliente e servidor
Cliente e servidorCliente e servidor
Cliente e servidorDavi Silva
 
SRE - Engenharia de confiabilidade de sites 3
SRE - Engenharia de confiabilidade de sites 3SRE - Engenharia de confiabilidade de sites 3
SRE - Engenharia de confiabilidade de sites 3Fabricio Goncalves
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixNatanael Fonseca
 

Semelhante a Aula 8 - Comunicação entre Componentes com SQS e SNS (20)

Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Aula 4 - Introdução a aws
Aula 4 - Introdução a awsAula 4 - Introdução a aws
Aula 4 - Introdução a aws
 
Iniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWSIniciando com serviços de bancos de dados gerenciados na AWS
Iniciando com serviços de bancos de dados gerenciados na AWS
 
Estratégias de migração para cloud
Estratégias de migração para cloudEstratégias de migração para cloud
Estratégias de migração para cloud
 
Sistemas operacionais de redes II
Sistemas operacionais de redes IISistemas operacionais de redes II
Sistemas operacionais de redes II
 
Como perder mensagens utilizando RabbitMQ
Como perder mensagens utilizando RabbitMQComo perder mensagens utilizando RabbitMQ
Como perder mensagens utilizando RabbitMQ
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05
 
Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiula
 
Messaging Pattern
Messaging PatternMessaging Pattern
Messaging Pattern
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
XML-RPC.pdf
XML-RPC.pdfXML-RPC.pdf
XML-RPC.pdf
 
Arquitetura orientada a eventos
Arquitetura orientada a eventosArquitetura orientada a eventos
Arquitetura orientada a eventos
 
Tópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de CargaTópicos - Cluster de Balanceamento de Carga
Tópicos - Cluster de Balanceamento de Carga
 
Cliente e servidor
Cliente e servidorCliente e servidor
Cliente e servidor
 
Aula 3 - Introdução a cloud computing
Aula 3 - Introdução a cloud computingAula 3 - Introdução a cloud computing
Aula 3 - Introdução a cloud computing
 
SRE - Engenharia de confiabilidade de sites 3
SRE - Engenharia de confiabilidade de sites 3SRE - Engenharia de confiabilidade de sites 3
SRE - Engenharia de confiabilidade de sites 3
 
Apresentação do Curso
Apresentação do CursoApresentação do Curso
Apresentação do Curso
 
Servidores de Aplicações
Servidores de AplicaçõesServidores de Aplicações
Servidores de Aplicações
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud Netflix
 

Mais de Eduardo de Lucena Falcão

Programando em X3D para integração de aplicações e suporte multiplataforma
Programando em X3D para integração de aplicações e suporte multiplataformaProgramando em X3D para integração de aplicações e suporte multiplataforma
Programando em X3D para integração de aplicações e suporte multiplataformaEduardo de Lucena Falcão
 
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Eduardo de Lucena Falcão
 
Aula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud WatchAula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud WatchEduardo de Lucena Falcão
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoEduardo de Lucena Falcão
 
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...Eduardo de Lucena Falcão
 
INFORMAÇÃO ARQUEOLÓGICA DE INGÁ: preservação, acesso e uso a partir de um amb...
INFORMAÇÃO ARQUEOLÓGICA DE INGÁ: preservação, acesso e uso a partir de um amb...INFORMAÇÃO ARQUEOLÓGICA DE INGÁ: preservação, acesso e uso a partir de um amb...
INFORMAÇÃO ARQUEOLÓGICA DE INGÁ: preservação, acesso e uso a partir de um amb...Eduardo de Lucena Falcão
 
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...Eduardo de Lucena Falcão
 
SEAC: Um Simulador Online para Ensino de Arquitetura de Computadores
SEAC: Um Simulador Online para Ensino de Arquitetura de ComputadoresSEAC: Um Simulador Online para Ensino de Arquitetura de Computadores
SEAC: Um Simulador Online para Ensino de Arquitetura de ComputadoresEduardo de Lucena Falcão
 
Processo de Tradução Automática da Língua Portuguesa para LIBRAS
Processo de Tradução Automática da Língua Portuguesa para LIBRASProcesso de Tradução Automática da Língua Portuguesa para LIBRAS
Processo de Tradução Automática da Língua Portuguesa para LIBRASEduardo de Lucena Falcão
 
Desafios da tecnologia da computação e indústria
Desafios da tecnologia da computação e indústriaDesafios da tecnologia da computação e indústria
Desafios da tecnologia da computação e indústriaEduardo de Lucena Falcão
 
TCC - PUBLICAÇÃO E ACESSO A CONTEÚDOS 3D ATRAVÉS DA WEB: O CASO DO MUSEU3I
TCC - PUBLICAÇÃO E ACESSO A CONTEÚDOS 3D ATRAVÉS DA WEB: O CASO DO MUSEU3I TCC - PUBLICAÇÃO E ACESSO A CONTEÚDOS 3D ATRAVÉS DA WEB: O CASO DO MUSEU3I
TCC - PUBLICAÇÃO E ACESSO A CONTEÚDOS 3D ATRAVÉS DA WEB: O CASO DO MUSEU3I Eduardo de Lucena Falcão
 
Descoberta de Conhecimento em Bancos de Dados e Mineração de Dados
Descoberta de Conhecimento em Bancos de Dados e Mineração de DadosDescoberta de Conhecimento em Bancos de Dados e Mineração de Dados
Descoberta de Conhecimento em Bancos de Dados e Mineração de DadosEduardo de Lucena Falcão
 
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de ProcessadoresAmbiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de ProcessadoresEduardo de Lucena Falcão
 

Mais de Eduardo de Lucena Falcão (20)

Dais 2015
Dais 2015Dais 2015
Dais 2015
 
Wcga 2015
Wcga 2015Wcga 2015
Wcga 2015
 
Programando em X3D para integração de aplicações e suporte multiplataforma
Programando em X3D para integração de aplicações e suporte multiplataformaProgramando em X3D para integração de aplicações e suporte multiplataforma
Programando em X3D para integração de aplicações e suporte multiplataforma
 
Minicurso sobre X3D
Minicurso sobre X3DMinicurso sobre X3D
Minicurso sobre X3D
 
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
Aula 7 - Hands On - Configurando nossa aplicação na AWS com EC2, Elastic Load...
 
Aula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud WatchAula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud Watch
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Aula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvidoAula 1 - Estudando o problema a ser resolvido
Aula 1 - Estudando o problema a ser resolvido
 
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...
II EPI - Estudo e Avaliação do Problema de Otimização da Multiplicação de Cad...
 
INFORMAÇÃO ARQUEOLÓGICA DE INGÁ: preservação, acesso e uso a partir de um amb...
INFORMAÇÃO ARQUEOLÓGICA DE INGÁ: preservação, acesso e uso a partir de um amb...INFORMAÇÃO ARQUEOLÓGICA DE INGÁ: preservação, acesso e uso a partir de um amb...
INFORMAÇÃO ARQUEOLÓGICA DE INGÁ: preservação, acesso e uso a partir de um amb...
 
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...
Estudo e Avaliação do Problema de Otimização da Multiplicação de Cadeias de M...
 
SEAC: Um Simulador Online para Ensino de Arquitetura de Computadores
SEAC: Um Simulador Online para Ensino de Arquitetura de ComputadoresSEAC: Um Simulador Online para Ensino de Arquitetura de Computadores
SEAC: Um Simulador Online para Ensino de Arquitetura de Computadores
 
Processo de Tradução Automática da Língua Portuguesa para LIBRAS
Processo de Tradução Automática da Língua Portuguesa para LIBRASProcesso de Tradução Automática da Língua Portuguesa para LIBRAS
Processo de Tradução Automática da Língua Portuguesa para LIBRAS
 
Desafios da tecnologia da computação e indústria
Desafios da tecnologia da computação e indústriaDesafios da tecnologia da computação e indústria
Desafios da tecnologia da computação e indústria
 
TCC - PUBLICAÇÃO E ACESSO A CONTEÚDOS 3D ATRAVÉS DA WEB: O CASO DO MUSEU3I
TCC - PUBLICAÇÃO E ACESSO A CONTEÚDOS 3D ATRAVÉS DA WEB: O CASO DO MUSEU3I TCC - PUBLICAÇÃO E ACESSO A CONTEÚDOS 3D ATRAVÉS DA WEB: O CASO DO MUSEU3I
TCC - PUBLICAÇÃO E ACESSO A CONTEÚDOS 3D ATRAVÉS DA WEB: O CASO DO MUSEU3I
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
 
E-Info
E-InfoE-Info
E-Info
 
Descoberta de Conhecimento em Bancos de Dados e Mineração de Dados
Descoberta de Conhecimento em Bancos de Dados e Mineração de DadosDescoberta de Conhecimento em Bancos de Dados e Mineração de Dados
Descoberta de Conhecimento em Bancos de Dados e Mineração de Dados
 
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de ProcessadoresAmbiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
 
Introdução prática ao X3D
Introdução prática ao X3DIntrodução prática ao X3D
Introdução prática ao X3D
 

Último

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxBeatrizLittig1
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreElianeElika
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 

Último (20)

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Mapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docxMapa mental - Classificação dos seres vivos .docx
Mapa mental - Classificação dos seres vivos .docx
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 

Aula 8 - Comunicação entre Componentes com SQS e SNS

  • 1. Introdução a Sistemas Distribuídos HandsON ­ Exemplo de utilização  de SQS e SNS Eduardo de Lucena Falcão
  • 4. Componentes AWS para Troca de Mensagens
  • 5. Quebrando nosso Sistema em Componentes ● Se encaixa bem em sistemas que tenham componentes no estilo produtor-consumidor. – Pode ser um ou vários componentes produtores, e um ou vários componentes consumidores.
  • 6. Evite a Sobrecarga ● Eventualmente, seu serviço ficará sobrecarregado. – Podemos tratar a sobrecarga sem escalar nossos servidores, caso seja pertinente.
  • 7. Evite Sobrecarga com Filas SQS ● Modifique seu produtor para enviar mensagens para as filas SQS; ● Evite falhas: processe apenas o que conseguir naquele momento; posteriormente, em momentos de baixa demanda, processe o restante das mensagens.
  • 9. Use Filas SQS ● As filas SQS armazenam suas mensagens de maneira duradoura até que você as processe. Quando as mensagens são lidas elas não são automaticamente removidas, mas são configuradas como invisível, para que nenhum outro componente a processe repetidamente. – A invisibilidade é definida por um visibility timeout que por padrão tem valor 30 segundos. ● Uma vez processadas as mensagens, você deve removê-la explicitamente da fila SQS. Caso contrário, a mensagem tornar-se-á disponível novamente na fila para que outros componentes a processem.
  • 10. SQS dá Suporte a Alta Vazão de Mensagens
  • 11. SQS dá Suporte a Alta Vazão de Mensagens ● É possível ter vários “produtores” escrevendo na fila em um mesmo momento. O SQS irá fazer de tudo para manter a ordem delas, mas a natureza distribuída torna impossível garanti-la 100%. – Se for extremamente necessário, adicione um identificador à sua mensagem. – A ordem aproximada é suficiente na maioria dos casos. ● É possível ter vários “consumidores”. A leitura de uma mensagem pelos consumidores é atômica. – Estratégias de para evitar dead lock são utilizadas pela SQS para prevenir múltiplos consumidores de ler uma mesma mensagem.
  • 12. SQS como um Buffer ● E se o serviço “cair” temporariamente, ou tiver de ser reiniciado? – Não tem problema. A fila pode absorver essas mensagens, funcionando como um Buffer.
  • 13. SQS como um Buffer ● Quanto o sistema voltar a seu funcionamento pleno, as processará rapidamente.
  • 14. SQS – Principais Características ● Provê alta durabilidade; ● Mantém as mensagens até as deletarmos explicitamente; ● Se não consumidas as mensagens são armazenadas por 4 dias (padrão), mas podem ser armazenadas por até 14 dias; ● É possível utilizar alertas do Amazon CloudWatch para monitorar quantidade de mensagens, taxa de mensagens em um dado tempo, etc.
  • 15. SQS - Preço Geral ● 100.000 mensagens de graça por mês para todos; ● $1,00 a cada 1.000.000 de requisições;
  • 16. Componentes AWS para Troca de Mensagens
  • 17. Introdução ao SNS ● Se encaixa bem em sistemas que tenham componentes no estilo produtor-consumidor. – A ideia é que um produtor envie mensagens idênticas a vários serviços.
  • 18. Evite a Sobrecarga ● Eventualmente, o produtor que produzir conteúdo popular para vários serviços ficará sobrecarregado quando precisar entregar essas mensagens a eles.
  • 19. Evite a Sobrecarga com Tópicos SNS ● Tópicos SNS desacoplam os produtores dos serviços que consomem suas mensagens. ● Tópicos SNS permitem você enviar mensagens idênticas a vários serviços em paralelo. – Produtores publicam as mensagens nos tópicos SNS uma única vez, e o SNS é encarregado de distribuir uma cópia idêntica desta mensagem para os serviços inscritos naquele tópico.
  • 20. Transparência na Entrega das Mensagens ● Podemos entregar as mensagens por diferentes protocolos, não precisamos no preocupar em como elas serão entregues.
  • 21. SNS – Principais Características ● Quantidade de inscritos ilimitadas: envie mensagens para quantos subscribers desejar; ● Suporte transparente a vários protocolos: Amazon SQS, HTTP, e-mail, SMS; ● Políticas de envio customizáveis segundo sua aplicação (tentativas, taxa de mensagens em dado tempo); ● É possível utilizar alertas do Amazon CloudWatch para monitorar quantidade de mensagens, taxa de mensagens em um dado tempo, etc.
  • 22. SNS - Preço Geral ● Preço para adicionar mensagens ao Tópicos SNS: – 100.000 mensagens de graça por mês para todos; – $0,60 a cada 1.000.000 de mensagens adicionadas ao SNS; ● Preço de entrega das mensagens aos inscritos no Tópico SNS:
  • 24. Exemplo I - SQS ● Processamento de imagens
  • 25. Exemplo II - SQS ● Processamento de PDFs com prioridade (Marvia) – Arquitetura Inicial
  • 26. Exemplo II - SQS ● Processamento de PDFs com prioridade (Marvia) – Arquitetura Final com SQS: QoS - Quality of Service
  • 27. Exemplo II - SNS ● Monitoramento do status do processamento do PDF (Marvia) ● Uma das partes básicas que está faltando no Marvia é a notificação ao cliente de quando o seu PDF estará pronto. Vamos olhar novamente o gráfico do slide anterior. É possível perceber que todo o ciclo, desde o pedido do cliente para a criação do PDF, passando pelas SQS até o processamento do mesmo pelas instâncias ocorre bem. Mas não existe um meio do cliente saber o momento exato de que seu PDF está pronto. Um meio seria criar tópicos SNS para cada clientes, e assim que o PDF estiver pronto, enviamos uma notificação para o mesmo via e-mail ou outro protocolo.
  • 28. Exemplo III – SNS + SQS ● Padrão de arquitetura “fanout” ● Ao usar este padrão podemos construir sistemas que tirem vantagem de processamento paralelo assíncrono. ● Por exemplo, seria possível publicar uma mensagem a um tópico SNS cada vez que tivermos um novo upload de imagem. Processos independentes receberão de maneira automática essa mensagem e executarão suas atividades de forma paralela.
  • 30. 25/05/2013 30 Referências ● Amazon Web Services. http://aws.amazon.com/pt/ (Acesso: abril/2013). ● Baseado em “AWS Messaging: Amazon SQS and SNS”. Acessado em 06/2013. Url: http://java.dzone.com/articles/aws-messaging-amazon-s qs-and ● Vliet, J., and Paganelli, F.; Programming Amazon EC2. O'Reilly.