Configurando um 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.

Aplicação Spring Boot fornece suporte para integração com Kafka através do pacote spring-kafka do Maven. 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 guia pelos 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 consultar este artigo.
  2. Aplicação Spring Boot com o pacote spring-kafka configurado.

Executando o Contêiner Kafka

Para rodar o contêiner Kafka, primeiro usaremos 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 broker 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

 

Isso puxará as imagens necessárias e lançará os contêineres, e uma vez que os contêineres estejam lançados, você poderá 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 com 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 bootstrap do Kafka conforme abaixo:

Properties files

 

Quando lançamos a aplicação Spring Boot, devemos ver os logs de conexão com Kafka, dependendo do tipo de aplicação Spring Boot, se é um produtor ou consumidor.

Seguindo os passos descritos 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