Este projeto demonstra a integração entre Spring Boot e RabbitMQ, implementando um sistema de mensageria assíncrono. O exemplo é baseado no guia oficial do Spring, mas com melhorias e atualizações para as versões mais recentes das tecnologias.
- Java 21
- Spring Boot 3.2.3
- Spring AMQP
- RabbitMQ 3.12
- Docker & Docker Compose
- Oracle Database
- OpenZipkin (para rastreamento distribuído)
- Lombok
- Maven
- JDK 21
- Docker e Docker Compose
- Maven 3.6+
- IDE de sua preferência (recomendado: IntelliJ IDEA ou VS Code)
- Clone o repositório:
git clone https://github.com/marcosvrc/springbootrabbitmq.git
cd springbootrabbitmq- Inicie os serviços com Docker Compose:
cd src/main/resources
docker-compose up -d- Verifique se os serviços estão rodando:
- RabbitMQ Management: http://localhost:15672/
- Usuário: guest
- Senha: guest
- Zipkin: http://localhost:9411/
- RabbitMQ Management: http://localhost:15672/
- Compile o projeto:
mvn clean install- Execute a aplicação:
mvn spring-boot:run- Publicação e consumo de mensagens assíncronas
- Filas durável e não-durável
- Exchanges do tipo Direct, Fanout e Topic
- Dead Letter Queue para tratamento de erros
- Rastreamento distribuído com Zipkin
- Monitoramento via RabbitMQ Management Console
src/
├── main/
│ ├── java/
│ │ └── br/com/springbootrmq/
│ │ ├── config/ # Configurações do RabbitMQ
│ │ ├── controller/ # REST Controllers
│ │ ├── model/ # Entidades
│ │ ├── service/ # Lógica de negócio
│ │ └── Application.java
│ └── resources/
│ ├── application.properties
│ └── docker-compose.yaml
└── test/
└── java/
└── br/com/springbootrmq/
└── # Testes unitários e de integração
-
RabbitMQ Management: http://localhost:15672/
- Monitoramento de filas, exchanges e mensagens
- Visualização de métricas de performance
-
Zipkin: http://localhost:9411/
- Rastreamento distribuído
- Análise de latência
- Fork o projeto
- Crie sua Feature Branch (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a Branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Marcos Vinício - @marcosvrc
Link do projeto: https://github.com/marcosvrc/springbootrabbitmq