Code Monkey home page Code Monkey logo

aws-sqs-exemplo's Introduction

Exemplo de Publicação e Consumo de Mensagens com AWS SQS e Spring Cloud para um sistema de pedidos

License: MIT Java Spring Boot AWS SDK Spring Cloud

Este projeto é um exemplo de integração com o Amazon Simple Queue Service (SQS) utilizando o Spring Boot e o Spring Cloud para um sistema de pedidos online.

Descrição

O sistema de pedidos online tem como objetivo enviar informações do pedido para uma fila SQS quando uma nova ordem é recebida. Isso é útil para processar os pedidos de forma assíncrona e escalável, garantindo que as informações do pedido sejam entregues com segurança e confiabilidade.

O projeto demonstra como criar e consumir mensagens de uma fila SQS da AWS (Amazon Web Services) usando o Spring Boot em conjunto com o Spring Cloud.

Nesse primeiro momento, a publicação e o consumo de mensagens são tratados dentro da mesma aplicação. Ainda não implementei o conjunto de endpoints REST que permite a interação do sistema diretamente com a aplicação.

Componentes Principais:

  • Aplicação Spring Boot: Representa a aplicação que recebe e processa os pedidos.
  • Amazon SQS: Representa o serviço de fila de mensagens da AWS, onde as mensagens de pedido são armazenadas.
  • LocalStack (Opcional): Representa a ferramenta utilizada para simular serviços da AWS localmente durante o desenvolvimento.
  • Pedido Consumido SQS: O pedido é consumido da fila SQS pela aplicação Spring Boot para processamento.

Fluxo de Mensagens:

  • Pedido Recebido: Um pedido é recebido pela aplicação Spring Boot.
  • Pedido Enviado para SQS: O pedido é encapsulado em uma mensagem e enviado para a fila SQS.

Desenho técnico

sistema_pedidos

Interações entre Componentes

  • A aplicação Spring Boot interage diretamente com a fila SQS para enviar e consumir mensagens de pedido.
  • Durante o desenvolvimento local, a aplicação Spring Boot interage com o LocalStack, que simula os serviços da AWS, incluindo o SQS.

Tecnologias Utilizadas

  • Java
  • Spring Boot
  • Spring Cloud
  • AWS SDK v2
  • LocalStack (para desenvolvimento local)

Classes de Publicação e Consumo

  • Classe de Publicação: OrderService
  • Classe de Consumo: OrderConsumer

Classe Principal

  • Classe Principal: SqsExemploApplication
    • A classe principal SqsExemploApplication é a entrada do aplicativo Spring Boot. Ela inicializa o contexto da aplicação Spring Boot, injeta as dependências necessárias e, após a inicialização, cria e envia um novo pedido para a fila SQS para iniciar o fluxo de processamento de pedidos.

Configuração

Antes de executar o projeto, certifique-se de ter configurado as seguintes propriedades:

  • Configure as credenciais da AWS no seu ambiente ou utilize o LocalStack para simular os serviços da AWS localmente.
  • Defina as configurações da fila SQS, como URL e região, no arquivo de propriedades.

Exemplo de configuração da fila SQS no arquivo application.properties:

  • sqs.order.queue.url

Execução

Para utilizar o LocalStack para desenvolvimento local:

  • Instale o LocalStack conforme as instruções em: LocalStack.
  • Defina as configurações da fila SQS para apontar para o endpoint local do LocalStack.

Execução

Para executar o projeto, siga estas etapas:

  1. Clone o repositório para sua máquina local.
  2. Certifique-se de ter configurado as propriedades da fila SQS conforme mencionado acima.
  3. Execute a aplicação Spring Boot.

Exemplo de execução usando Maven:

  • mvn spring-boot:run

Ao final da execução do projeto, será possível verificar no log tanto a publicação quanto o consumo das mensagens na fila SQS.

INFO - Order sent to SQS: Order{orderId='número gerado aleatório', customerName='Renato', amount=100.0}
INFO - Received new order: Order{orderId='número gerado aleatório', customerName='Renato', amount=100.0}

img.png

Documentação

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue ou enviar um pull request com melhorias, correções de bugs ou novos recursos.

Licença

Este projeto está licenciado sob a MIT License.

aws-sqs-exemplo's People

Contributors

renatoredes avatar

Stargazers

karolina-gusmao avatar Rayane Maciel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.