Projeto feito para estudar mensageria utilizando a ferramenta RabbitMQ com o tipo de exchange topic.
simulação de online orders sendo enviadas para ambos tipos consumers | simulação de offline orders sendo enviada apenas para o consumer de persistência de dados |
---|---|
Inicie seu servidor RabbitMQ e configure o .env
com suas credenciais ou execute
usando o Docker com o comando abaixo e utilize a credencial do .env.example
docker-compose up -d rabbitmq
Instale as dependencias
npm install
Executando a API no modo desenvolvedor
npm run dev
Executando os Consumers no modo desenvolvedor. Observação: inicie cada consumer em um terminal separado.
npm run consumer:orders
npm run consumer:pdfa
npm run consumer:pdfb
Caso prefira pode rodar todos os serviços usando somente o docker-compose, utilize o comando:
docker-compose up
Os endpoints para execução estão no arquivo requests.http
e caso tenha a extensão do VSCode chamada "REST Client" pode enviar a request diretamente por ele.
### Sending 30 orders to rabbitmq, 19 online for pdf consumer
GET http://localhost:3000/api/publish/samples
### Send a message using type online
POST http://localhost:3000/api/publish
Content-Type: application/json
{
"data": {
"type": "online",
"message": "testing"
}
}
### Send a message using type offline
POST http://localhost:3000/api/publish
Content-Type: application/json
{
"data": {
"type": "offline",
"message": "testing"
}
}