Demonstração de Consumo em Batch (Lote) e Multithread com Kafka, Prometheus e Grafana

Esta é uma demonstração desenvolvida em Java com o framework Spring, utilizando o Apache Kafka para processamento de mensagens em lote e multithread. Também são utilizados o Prometheus e o Grafana para monitoramento e visualização dos dados.

Pré-requisitos

  • Docker e Docker Compose instalados na máquina local.
  • SDK Java 20

Configuração

  1. Clone o repositório para a sua máquina local.

  2. Navegue até o diretório raiz do projeto.

  3. Abra o arquivo docker-compose.yml e verifique as configurações dos serviços. Certifique-se de que as portas estejam corretas e os volumes estejam configurados de acordo com a sua preferência.

  4. No arquivo docker-compose.yml, a seção services define os serviços a serem executados, como o Zookeeper, Kafka, Kafdrop, Prometheus e Grafana. Verifique se todas as dependências estão corretamente configuradas.

  5. A seção volumes define os volumes Docker para persistência de dados. Você pode ajustar os caminhos dos volumes de acordo com a sua preferência.

  6. Após verificar e ajustar as configurações, salve o arquivo docker-compose.yml.

Executando a Aplicação

  1. Abra um terminal ou prompt de comando.

  2. Navegue até o diretório raiz do projeto, onde se encontra o arquivo docker-compose.yml.

  3. Execute o seguinte comando para iniciar os serviços definidos no arquivo docker-compose.yml:

Isso iniciará os contêineres Docker para o Zookeeper, Kafka, Kafdrop, Prometheus e Grafana. Os serviços serão executados em segundo plano (-d).

  1. Aguarde até que todos os serviços estejam em execução. Verifique se não há erros no log de inicialização dos contêineres.

Utilização

Após iniciar os serviços, você pode acessar os seguintes recursos:

  • Kafdrop: Acesse o Kafdrop em http://localhost:9000 para visualizar e explorar os tópicos e mensagens do Kafka.

  • Prometheus: Acesse o Prometheus em http://localhost:9090 para visualizar as métricas coletadas do Kafka.

  • Grafana: Acesse o Grafana em http://localhost:3000 e faça login com as credenciais padrão (usuário: admin, senha: admin). Configure um novo painel para visualizar os dados e métricas coletadas pelo Prometheus.

  • Adicione o DashBoard template do grafana

  • Adicione o datasource do prometheus image

  • Configure as variaveis de ambiente da seguente forma: image

  • Visualização das metricas pelo grafana: image

Recursos Adicionais

Notas

Certifique-se de que todas as dependências e configurações estejam corretas antes de executar a aplicação. Caso encontre algum problema ou dificuldade, consulte a documentação oficial dos serviços utilizados ou verifique as configurações e logs dos contêineres Docker.