Olá! Boas-vindas ao curso de Amazon SQS, o serviço de mensageria da Amazon. Sou Tales Minucci e serei seu instrutor ao longo dessa jornada educacional. Nesta experiência de aprendizado, você irá compreender a utilidade de serviços de mensageria em geral e, mais especificamente, como usar a implementação da Amazon, o SQS, o renomado serviço de fila simples.
Nós vamos entender todos os benefícios, a escalabilidade e a confiabilidade de usar um serviço de mensageria como o SQS. Este serviço é um dos mais antigos da Amazon e é utilizado por grandes empresas no mundo todo, incluindo a NASA.
Será explorada a definição de preço do Amazon SQS, para você compreender os custos associados à sua utilização. Além disso, vamos abordar conceitos básicos, características e como trafegar dados de maneira segura entre dois sistemas, evitando a perda de mensagens, por exemplo, em uma eventual falha de conexão.
Estudaremos também como replicar a mensagem para diferentes tipos de filas, criando o desacoplamento chamado de tópico. Abordaremos a importância de calcular o tempo de visibilidade de uma mensagem, também conhecido como Visibility Timeout (Tempo de Visibilidade), assim como seu impacto no processamento de mensagens.
Discutiremos as filas FIFO, que garantem a ordem das mensagens. No final do curso, você aprenderá a enviar mensagens por meio da linguagem de programação Node.js, comunicando-se com as APIs da AWS. Adicionalmente, você usará a linha de comando no seu terminal para criar filas, receber mensagens, excluir mensagens, entre outras habilidades.
Estou ansioso para começar este curso e estou comprometido em garantir que você aprenda. Então, vamos embarcar nesta jornada juntos!
Olá! Se você tem interesse em saber como sistemas de mensageria funcionam na prática e a segurança que eles podem proporcionar para nossas aplicações, explicaremos tudo detalhadamente neste vídeo.
Imaginemos o sistema A, que pode ser, por exemplo, um sistema de transações financeiras, um banco ou algo similar. Este sistema precisa se comunicar com outro, que vamos denominar de sistema B, que pode ser o Banco Central, por exemplo.
No Brasil, toda transação financeira precisa ser efetivada no Banco Central. E como essa comunicação poderia ocorrer?
Suponha que seu banco precise enviar uma mensagem para o Banco Central informando sobre uma nova transação financeira que deseja registrar. Há várias maneiras de fazer isso, mas neste vídeo nós exploraremos duas delas.
Imagine que o sistema A faça uma chamada HTTP para o sistema B. Essa chamada pode ser uma chamada REST (Representational State Transfer) ou uma chamada SOAP (Simple Object Access Protocol).
Vamos supor que o sistema B, o Banco Central, não esteja disponível no momento da chamada.
Por que não estaria disponível? Uma das razões é que, quando estamos desenvolvendo sistemas de internet, nunca podemos confiar totalmente na rede. Pode haver perda de pacotes, o client pode simplesmente perder a conexão, a internet pode cair. Portanto, a rede não é confiável.
Outro ponto é a indisponibilidade no servidor; neste caso, no sistema B. Por exemplo, no início do mês, todos recebem dinheiro e muitas transações estão ocorrendo ao mesmo tempo, sobrecarregando o serviço do Banco Central. O Banco Central pode responder muito lentamente, com uma latência muito alta, ou pode ficar indisponível.
Nesse cenário, qualquer tentativa de reenvio teria que ser feita pelo sistema A, ou seja, pelo próprio banco. Este teria que continuar entrando em contato com o Banco Central periodicamente para perguntar "você está disponível?" até conseguir entregar a mensagem.
Isso acaba por não ser muito efetivo, já que sobrecarrega o sistema A com muitas tentativas de reenvio e o sistema B pode levar muito tempo para voltar. Portanto, não é um método confiável.
Então, como poderíamos resolver isso?
Podemos resolver esse problema com uma comunicação assíncrona. Nesse caso, o sistema A coloca uma mensagem em um broker de mensageria, como o SQS, o Serviço de Fila Simples da Amazon.
Então, o sistema B, quando disponível, consulta o broker de mensageria sobre novas mensagens. Se houver, o broker entrega a mensagem e o sistema B a processa de acordo, seja para gravá-la no banco de dados, em um arquivo, etc.
Sob essa perspectiva, as vantagens são que a mensagem fica armazenada no broker. Então, não há problema se a internet do sistema B não estiver funcionando ou se o sistema B não estiver disponível.
Isso proporciona uma tolerância a indisponibilidades. Não importa se o sistema B ficar offline por uma, duas, três horas ou até alguns dias, já que a mensagem será armazenada temporariamente no broker.
Há um limite, o qual exploraremos ao longo deste curso, mas é um limite alto. Estamos falando de duas semanas de limite. Portanto, isso proporciona uma grande resiliência para nossas aplicações. Tudo o que precisamos é que o sistema A consiga entregar a mensagem com sucesso para a mensageria.
Para entender melhor, vamos fazer uma analogia desse processo com a vida cotidiana. Imagine que você precisa entregar uma mensagem para uma amiga ou amigo. Você escreve a mensagem, coloca em um envelope e deposita na caixa de correio dessa pessoa.
Essa pessoa pode ou não estar em casa no momento do recebimento. Mas você, como remetente, cumpriu seu papel ao deixar a mensagem em um local seguro. A pessoa destinatária, quando checar a caixa de correio, verá que há uma nova mensagem. Então, a comunicação será bem-sucedida.
Em comparação, se tivéssemos usado uma comunicação síncrona, a pessoa remetente teria que ir até a casa da pessoa destinatária. Se a pessoa destinatária não estiver em casa, a pessoa remetente terá que voltar e tentar em outro momento. Isso seria muito cansativo e oneroso para a pessoa remetente.
Portanto, com uma comunicação assíncrona, garantimos a entrega da mensagem, seja na hora ou em um momento posterior.
Agora que compreendemos os principais benefícios da utilização do sistema de mensageria, vamos finalmente criar nossa primeira fila na AWS. Vamos lá!
O primeiro passo a fazer é decidir a região na qual iremos trabalhar. No console da Amazon, no canto superior direito, você pode clicar na região pré-configurada. No caso do instrutor, é North Virginia, ou Virgínia do Norte, estado dos EUA. Clicando, temos uma lista todas as regiões disponíveis pela AWS.
Durante o curso, utilizaremos North Virginia, porque é a região onde todas as novas funcionalidades são primeiramente implementadas. Depois, mediante testes bem-sucedidos, essas funcionalidades são distribuídas para outras regiões.
No entanto, para o conteúdo desse curso, nada impede que você escolha outra região. Você pode, inclusive, escolher o datacenter de São Paulo sem problema algum.
O segundo passo é buscar o sistema que utilizaremos. Neste caso, o Simple Queue Service, SQS, ou sistema de fila simples da Amazon.
Existem algumas maneiras de buscar esse serviço. No centro da tela do console da AWS, temos o menu de Find Services. Podemos clicar nele e digitar "SQS", que é o acrônimo, e veremos que o Simple Queue Service aparece como opção clicável na lista suspensa.
Outra opção é, no canto superior esquerdo da tela, clicar em Services e também digitar "SQS" para filtrar os serviços. Ambas as opções são válidas, fica a seu critério qual você acha mais fácil.
Clicando em Simple Queue Service, nos redirecionamos ao console da SQS da Amazon e podemos clicar em "Create Queue" (criar fila).
Todas as configurações que usaremos agora são as configurações padrão, inclusive o tipo da fila, que é a fila "Standard", ou seja, a fila padrão. No futuro, também exploraremos filas FIFO.
O próximo passo é dar um nome para a nossa fila. Podemos chamar nossa fila de alura-test
.
Nas configurações, manteremos tudo como padrão e clicaremos em "Create Queue" (criar fila) ao final da tela.
A criação da fila é muito rápida, leva apenas um ou dois segundos. Temos a nossa primeira fila criada, como podemos verificar na tela de Queues da SQS.
Podemos conferir os metadados da nossa fila, como o nome, o tipo da fila, uma URL de conexão que usaremos no futuro, entre outros.
A primeira coisa que faremos, no entanto, é enviar uma mensagem para a nossa fila. Afinal, criamos uma fila e queremos enviar mensagem para ela.
No canto direito superior da tela, temos o botão "Send and Receive Messages" (enviar e receber mensagens). Ao clicar neste botão, podemos conferir algumas configurações para o envio desta mensagem.
A primeira é o Message Body (corpo da mensagem), ou seja, o que efetivamente iremos enviar para o SQS. No mundo da TI, é muito comum criarmos o famoso "Olá, mundo!" como teste e faremos o mesmo com a mensagem SQS. Então, vamos digitar essa frase no campo do corpo e clicar em "Send Message" no topo direito da tela. Não iremos alterar nenhuma outra configuração.
Feito isso, recebemos o aviso de que nossa mensagem foi enviada e está pronta para ser recebida. Clicando em "View details" nesse aviso, podemos conferir que a essa mensagem foi atribuído um ID, ou seja, internamente a Amazon gravou esta mensagem, e temos até o corpo dela codificado em MD5.
Fechando este pop-up, vamos descer até a opção "Poll for Message", a busca por mensagens, ou seja, verificar se a nossa mensagem realmente está na fila.
Temos uma dica sobre isso no campo "Messages Available" (mensagens disponíveis) da fila, que exibe o número de mensagens que a fila recebeu. Nesse caso, exibe o número 1, mas queremos ter certeza disso.
Então, no canto direito da tela, vamos clicar no botão de busca. Com isso, podemos notar que a seção de Messages foi populada com uma mensagem.
Clicando nesta mensagem, podemos conferir seu corpo, ou seja, o "Olá, mundo!". Portanto, nossa mensagem foi recebida com sucesso.
O que podemos fazer agora é fechar este pop-up e apagar esta mensagem. Ou seja, criamos a mensagem, lemos a mensagem e agora vamos excluí-la. Então, clicamos em "Delete" ao lado da seção de Messages e confirmar a operação.
Voltando para o menu de filas (link "Queues" no canto superior esquerdo), verificamos que na nossa fila alura-test
não há nenhuma mensagem disponível, pois acabamos de deletar a que enviamos.
Nesta aula conseguimos criar uma fila na nuvem, enviar uma mensagem, ler esta mensagem e finalmente excluir esta mensagem. Nenhuma mensagem foi deixada para trás!
O curso AWS SQS: mensageria e desacoplamento de sistemas possui 82 minutos de vídeos, em um total de 38 atividades. Gostou? Conheça nossos outros cursos de AWS em DevOps, ou leia nossos artigos de DevOps.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.