O RabbitMicro é um projeto de microserviços construído com Spring Boot e RabbitMQ, voltado para demonstrar uma arquitetura desacoplada e escalável para troca de mensagens entre módulos.
Ele implementa produção e consumo de mensagens via filas RabbitMQ, aplicando princípios de Clean Architecture e DDD (Domain-Driven Design).
RabbitMicro-master/
├── src/main/java/dev/Zerphyis/microRabbitMq/
│ ├── Application/
│ │ ├── dto/
│ │ ├── mapper/
│ │ ├── services/
│ │ ├── useCases/
│ ├── MicroRabbitMqApplication.java
├── pom.xml
└── .github/workflows/ci.yml
- Envio e consumo de mensagens assíncronas entre producers e consumers.
- Uso de Exchange, Queue e Routing Key configurados para cada domínio.
- CRUD completo de produtos.
- Produz e consome mensagens relacionadas a operações de produtos.
- Classes principais:
ProductServiceRabbit→ envia mensagens ao RabbitMQ.ConsumeService→ consome e processa mensagens recebidas.
- Registro, login e desativação de usuários.
- Comunicação via filas para eventos relacionados a usuários.
- Casos de uso:
DeactiveUserUseCase,FindUsersUseCase.
- Serviço de envio de mensagens de e-mail via
EmailProducerService.
- Java 17+
- Spring Boot
- RabbitMQ
- Lombok
- MapStruct (mapeamento de DTOs)
- Maven
- GitHub Actions (CI/CD)
- Java 17+
- Maven 3.8+
- RabbitMQ rodando localmente (porta padrão
5672)
git clone https://github.com/Zerphyis/RabbitMicro.git
cd RabbitMicro-mastersrc/main/resources/application.propertiesmvn spring-boot:runhttp://localhost:8080Clean Architecture: Separação clara entre camadas (DTO → Service → UseCase).
Event-Driven Architecture: Comunicação baseada em eventos.
Desacoplamento total: Cada módulo (usuário, produto, e-mail) pode operar de forma independente.
Para rodar os testes automatizados:
mvn test