Skip to content

37scj/microservices-integration

Repository files navigation

Project description

Solução para o agronegócio que coleta dados via sensores de temperatura e umidade. Esses sensores são instalados em um drone com uma altíssima autonomia de energia, A cada 10 segundos são enviados para o droneDTO broker os dados de temperatura e umidade capturado naquele instante. Além da primeira função também é possível acionar o rastreamento do drone. Esta funcionalidade resulta na localização do equipamento em um mapa.

Microservices integration

usage in this project:

  • MySQL
  • RabbitMQ
  • Java
  • ReactJs
  • Docker (compose) :

About docker compose

  Estamos utilizando o docker compose para a orquestração e automatização de containers.
  
  Todos as imagens pré-compilada, ou seja, empacotada, foi adicionada no repositório do docker hub
  
  Link das imagens :
  
       https://hub.docker.com/r/gabrielltr/droneproducer
       https://hub.docker.com/r/gabrielltr/dronebackend
       https://hub.docker.com/r/gabrielltr/icc-react-web-app
  
  No compose temos as seguintes imagens:
  
  rabbitmq:3-management -> Servidor de mensageria
  
  mysql ->  Banco de dados Relacional
  
  adminer -> O Adminer é uma solução acessível via browser para a administração do MySQL
  
  droneProducer -> Responsável por receber as atualizações de dados dos “drones” essas atualizações seriam (longitude, latitude, temperatura)  
  
  dronebackend ->  Responsável pela manutenção das informações dos ‘drones’, como a criação do ‘drone’ contendo (id,nome do drone,temperatura,longitude,latitude)
  
  icc-react-web-app ->  Responsável por exibir a ‘interface’ gráfica e realizar as chamadas nas apis para manter a atualização dos dados do ‘drone’
  
  loadbalance:nginx -> Responsável por realizar o balanceamento de carga dos microserviços :  icc-react-web-app end e dronebackend

Start Up docker things

setup

First setup the environment:

export MS_VERSION=0.1.1-SNAPSHOT
export WEB_VERSION=0.1.0

echo $REACT_APP_GMAPSKEY $MS_VERSION $WEB_VERSION

building images

FRONT END

docker build icc-react-web-app/ -t gabrielltr/icc-react-web-app:0.1.0
docker build droneBackend/ -t gabrielltr/icc-react-web-app:0.1.1-SNAPSHOT

Drone compose up

Local compose:

docker-compose up -d

health check

To check backend health check

http://localhost:8090/actuator/health

this show health of this backend and if there is a rabbit and mysql connection

{
   "status": "UP",
   "components": {
      "db": {
      "status": "UP",
      "details": {
         "database": "MySQL",
         "validationQuery": "isValid()"
         }
      },
      "diskSpace": {
         "status": "UP",
         "details": {
         "total": 269490393088,
         "free": 233015492608,
         "threshold": 10485760,
         "exists": true
         }
      },
      "ping": {
         "status": "UP"
      },
      "rabbit": {
         "status": "UP",
         "details": {
         "version": "3.8.9"
      }
      }
   }
}

Documentação Swagger v2


Using swarm

Init a swarm

docker swarm init

Add worker to your cluster

docker swarm join-token worker

The response will be like above, then you can add your workers

docker swarm join --token SWMTKN-1-22h12q8oxptbi8ivc143mx07yixzqirdww0h641mewq3zs909h-eqyfsev9tff5mj8s83uj32bw1 192.168.65.3:2377

Portainer (management) as stack or compose (local)

Portainer stack for Swarm:

cd portainer
docker stack deploy -c portainer-agent-stack.yml portainer

portainer compose

cd portainer
docker-compose up -d

When ready you can access portainer by URL http://localhost:9000

Microservices integration as stack

docker stack deploy -c docker-compose.yml microservices --prune

About

Serviços integrados microservices Drone v3.0

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors