Este guia fornece as instruções para executar o projeto que envolve o uso do MySQL, Docker com RabbitMQ e uma aplicação Go para consumir e salvar mensagens no banco de dados.
Antes de começar, certifique-se de ter instalado em seu computador as seguintes ferramentas:
- Docker (com Docker Compose)
- Go (Golang) 1.21+
No terminal, execute o comando abaixo para criar um diretório onde será armazenado os dados do MySQL:
mkdir /tmp/mysql-data
Certifique-se de que o Docker esteja instalado e em execução. No mesmo terminal, navegue até o diretório onde está localizado o arquivo docker-compose.yml e execute o seguinte comando para iniciar o RabbitMQ em um container:
docker-compose up -d
Abra um navegador e acesse a interface web do RabbitMQ em http://localhost:15672
(login: guest, senha: guest). Crie uma nova fila chamada order.
Utilizando a interface web do RabbitMQ, acesse a aba Publish message da fila order e publique a seguinte mensagem no formato JSON:
{"id":"3","price":13.0,"tax":0.3}
No mesmo terminal, execute:
make run
- A aplicação estará disponível em http://localhost:8000.
- As migrations serão executadas automaticamente no startup da aplicação.
- O GraphQL Playground estará disponível em http://localhost:8080.
- O gRPC server estará disponível em http://localhost:50051.
A aplicação Go consumirá a mensagem publicada na fila order no RabbitMQ e salvará os dados na tabela orders do banco de dados SQLite.
No terminal no diretório da aplicação, execute o seguinte comando para gerar a imagem Docker:
make docker-build
No terminal no diretório da aplicação, execute o seguinte comando para rodar aplicação em container Docker:
make docker-run