Este projeto demonstra a comunicação assíncrona entre dois microsserviços (Producer e Consumer) utilizando Spring Boot e RabbitMQ.
- Producer: Expõe um endpoint REST
/api/pedidopara receber pedidos e enviá-los para a fila RabbitMQfila.pedidos. - Consumer: Escuta a fila
fila.pedidose exibe os dados do pedido recebido no console.
- Java 21
- Spring Boot
- RabbitMQ
- Maven
- Docker (opcional, para subir o RabbitMQ)
Você pode usar Docker para subir o RabbitMQ rapidamente:
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-managementA interface de administração estará disponível em http://localhost:15672
Usuário/senha padrão: user / secret
No terminal, dentro da pasta do producer:
mvn clean install
mvn spring-boot:runNo terminal, dentro da pasta do consumer:
mvn clean install
mvn spring-boot:runFaça uma requisição POST para o endpoint do producer:
POST http://localhost:8081/api/pedido
Content-Type: application/json
{
"id": 1,
"produto": "Livro de Java",
"quantidade": 3
}
O consumer exibirá no console os dados do pedido recebido.
- Configure as propriedades do RabbitMQ em
application.propertiesse necessário. - Certifique-se de que as portas 5672 (RabbitMQ), 8080 (Consumer) e 8081 (Producer) estão livres.