Configurando Contêiner Kafka Local para Aplicação Spring Boot

Na arquitetura de microserviços e orientada a eventos de hoje, o Apache Kafka é o padrão para aplicações de streaming. No entanto, configurar o Kafka para desenvolvimento local em conjunto com sua aplicação Spring Boot pode ser complicado, especialmente ao configurá-lo para rodar localmente.

A aplicação spring-kafka oferece suporte à integração com o Kafka através do pacote maven spring-kafka. Para trabalhar com spring-kafka, precisamos nos conectar à instância do Kafka. Normalmente, durante o desenvolvimento, apenas rodaríamos uma instância local do Kafka e construiríamos contra ela. Mas com o Docker Desktop e contêineres, as coisas são muito mais fáceis de configurar do que rodar uma instância local do Kafka. Este artigo nos orienta através dos passos para configurar o contêiner local do Kafka com a aplicação Spring Boot.

Pré-requisitos

  1. Precisamos configurar o Docker Desktop. Para isso, podemos nos referir a este artigo.
  2. Aplicação Spring Boot com o pacote spring-kafka configurado.

Executando o Contêiner Kafka

Para executar o contêiner Kafka, primeiro utilizaremos o seguinte arquivo docker-compose:

YAML

 

Este arquivo docker-compose contém as configurações para puxar o contêiner Kafka e sua dependência, o contêiner Zookeeper. O Zookeeper gerencia os nós do corretor do Kafka no cluster; podemos encontrar mais detalhes sobre isso neste artigo.  

Para registrar os contêineres com o Docker Desktop, usaremos o seguinte comando:

PowerShell

 

Isto irá puxar as imagens requeridas e lançar os contêineres, e uma vez que os contêineres estejam lançados, você pode ver os contêineres no Docker Desktop como abaixo:

Agora que o contêiner Kafka está ativo, podemos então criar os tópicos necessários usando o console do Docker Desktop usando o seguinte comando: 

PowerShell

 

Agora que o contêiner está ativo e os pré-requisitos necessários foram realizados, podemos lançar a aplicação Spring Boot.  Para a aplicação Spring Boot, configure o endereço de inicialização do Kafka como abaixo:

Properties files

 

Ao lançarmos a aplicação Spring Boot, devemos ver os logs para a conexão com Kafka, dependendo do tipo de aplicação Spring Boot, seja produtor ou consumidor.

Seguindo os passos delineados no artigo, configuramos um ambiente de desenvolvimento local usando um contêiner Kafka e uma aplicação Spring Boot.

Source:
https://dzone.com/articles/setting-up-local-kafka-container-for-spring-boot-application