Skip to content

luizhenrique-dev/go-order-manager

Repository files navigation

Guia de Execução do Projeto

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.

Pré-requisitos

Antes de começar, certifique-se de ter instalado em seu computador as seguintes ferramentas:

  • Docker (com Docker Compose)
  • Go (Golang) 1.21+

Passo 1: Criar o diretório para o banco de dados MySQL

No terminal, execute o comando abaixo para criar um diretório onde será armazenado os dados do MySQL:

mkdir /tmp/mysql-data

Passo 2: Executar o Docker Compose com o RabbitMQ

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

Passo 3: Configurar a queue "order" no RabbitMQ

Abra um navegador e acesse a interface web do RabbitMQ em http://localhost:15672 (login: guest, senha: guest). Crie uma nova fila chamada order.

Passo 4: Publicar uma mensagem na queue "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}

Passo 5: Executar a aplicação Go

No mesmo terminal, execute:

make run

Passo 6: Consumir e salvar a mensagem no banco de dados

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.

Disponibilizar API do projeto

Passo 1: Gerar imagem Docker

No terminal no diretório da aplicação, execute o seguinte comando para gerar a imagem Docker:

make docker-build

Passo 2: Executar aplicação em container

No terminal no diretório da aplicação, execute o seguinte comando para rodar aplicação em container Docker:

make docker-run

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published