Dans l’architecture microservices et pilotée par les événements d’aujourd’hui, Apache Kafka est la norme pour les applications de streaming. Cependant, configurer Kafka pour le développement local en conjonction avec votre application Spring Boot peut être délicat, surtout lorsqu’il s’agit de le faire fonctionner localement.
L’application Spring Boot offre un support pour l’intégration de Kafka via le paquet maven spring-kafka. Pour travailler avec spring-kafka, nous devons nous connecter à l’instance Kafka. En général, pendant le développement, nous exécuterions simplement une instance Kafka locale et nous construirions contre celle-ci. Mais avec Docker Desktop et les conteneurs, les choses sont beaucoup plus faciles à configurer que de faire fonctionner une instance Kafka locale. Cet article nous guide à travers les étapes pour configurer le conteneur Kafka local avec l’application Spring Boot.
Prérequis
- Nous devons installer Docker Desktop. Pour ce faire, nous pouvons nous référer à cet article.
- L’application Spring Boot avec le paquet spring-kafka configuré.
Exécution du conteneur Kafka
Pour exécuter le conteneur Kafka, nous allons d’abord utiliser le fichier docker-compose suivant :
version'3'
services
zookeeper
image confluentinc/cp-zookeeper latest
environment
ZOOKEEPER_CLIENT_PORT2181
ports
"2181:2181"
kafka
image confluentinc/cp-kafka latest
environment
KAFKA_ZOOKEEPER_CONNECT zookeeper2181
KAFKA_ADVERTISED_LISTENERS PLAINTEXT //localhost9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR1
ports
"9092:9092"
depends_on
zookeeper
Ce fichier docker-compose contient les configurations pour tirer le conteneur Kafka et sa dépendance, le conteneur Zookeeper. Zookeeper gère les nœuds de courtier Kafka dans le cluster ; nous pouvons trouver plus de détails à ce sujet dans cet article.
Pour enregistrer les conteneurs avec Docker Desktop, nous utiliserons la commande suivante :
docker-compose up -d
Cela téléchargera les images nécessaires et lancera les conteneurs, et une fois les conteneurs lancés, vous pourrez voir les conteneurs dans Docker Desktop comme ci-dessous :
Maintenant que le conteneur Kafka est opérationnel, nous pouvons créer les sujets nécessaires en utilisant la console de Docker Desktop avec la commande suivante :
kafka-topics --create --topic user-notification --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
Maintenant que le conteneur est opérationnel et que les prérequis nécessaires ont été réalisés, nous pouvons lancer l’application Spring Boot. Pour l’application Spring Boot, configurez l’adresse de bootstrap Kafka comme ci-dessous :
kafka.bootstrapAddress=localhost:9092
Lorsque nous lançons l’application Spring Boot, nous devrions voir les journaux de connexion avec Kafka, selon le type d’application Spring Boot, qu’il s’agisse d’un producteur ou d’un consommateur.
En suivant les étapes décrites dans l’article, nous avons configuré un environnement de développement local en utilisant un conteneur Kafka et une application Spring Boot.
Source:
https://dzone.com/articles/setting-up-local-kafka-container-for-spring-boot-application