Modelo para criação de API/Microservices usando Kafka e WebSockets
O projeto possui 13 containers, sendo eles distribuidos nos seguintes ambientes:
- ELK, os 3 containers que funcionam neste ambiente são responsáveis por manter a funcionalidade de logs do projeto. Neste ambiente funcionam:
- FluentBit: Log Processor, responsavél por absorver os logs gerados no container que implementa o "fluentd" como "log driver", e enviá-los ao elasticsearch
- Elasticsearch: Mecanismo de busca e analise de dados
- Kibana: Interface para visualização de dados. Tem como origem de dados várias fontes possíveis. A utilizada no projeto será o Elasticsearch.
- Api, uma imagem usando Node, responsável por manter a API
- Kafka, possui 9 containers responsáveis por manter o ecossistema do Kafka.
Todo o projeto está rodando no ambiente do Docker, para subir o ambiente basta rodar dentro da pasta raiz no projeto:
- docker-compose build
- docker-compose up -d
Obs:
- Dependendo da capacidade do maquina que está sendo utilizada, será necessário aumentar a memória ram disponível para o Docker nas configurações do próprio docker.
- O comando docker-compose ps verifica o estado dos containers.
- Caso um container não suba execute novamente o comando docker-compose up -d
- Para parar o ambiente execute: docker-compose down