Client Kafka Java : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction à Apache Kafka Client pour Java

Apache Kafka est une plateforme distribuée de streaming d'événements qui permet de publier, stocker et traiter des flux de données en temps réel. La bibliothèque Kafka Client pour Java est le client officiel fournissant une API pour interagir avec les brokers Kafka. Elle permet aux applications Java de jouer le rôle de producteurs (envoi de messages) et de consommateurs (lecture de messages), ainsi que de gérer les métadonnées et les tâches administratives.

Cette bibliothèque est indispensable pour la construction d'architectures microservices, de systèmes de traitement de logs, de pipelines ETL, de systèmes d'analyse en temps réel et de tout autre scénario nécessitant un transfert de données fiable, scalable et résilient entre les composants.

Installation du Client Kafka pour Java

Le client Kafka pour Java est distribué via le Maven Central Repository. Pour ajouter la bibliothèque à votre projet, vous devez spécifier la dépendance dans le fichier pom.xml (pour Maven) ou build.gradle (pour Gradle).

Maven

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>3.6.0</version> <!-- Utilisez la version la plus récente -->
</dependency>

Gradle

implementation 'org.apache.kafka:kafka-clients:3.6.0'

Une fois la dépendance ajoutée et le projet mis à jour, toutes les classes de la bibliothèque seront disponibles pour l'importation.

Démarrage rapide : Producer et Consumer

Voici un exemple minimal d'envoi et de réception d'un message.

Producer (Expéditeur)

import org.apache.kafka.clients.producer.*;
import java.util.Properties;

public class SimpleProducer {
    public static void main(String[] args) {
        // 1. Configuration des propriétés
        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        // 2. Création du producteur
        Producer<String, String> producer = new KafkaProducer<>(props);

        // 3. Envoi du message
        ProducerRecord<String, String> record = new ProducerRecord<>("my-topic", "key1", "Bonjour, Kafka !");
        producer.send(record);

        // 4. Fermeture du producteur
        producer.close();
    }
}

Consumer (Destinataire)

import org.apache.kafka.clients.consumer.*;
import java.time.Duration;
import java.util.Collections;
import java.util.Properties;

public class SimpleConsumer {
    public static void main(String[] args) {
        // 1. Configuration des propriétés
        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("group.id", "my-group");
        props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        props.put("auto.offset.reset", "earliest");

        // 2. Création du consommateur
        Consumer<String, String> consumer = new KafkaConsumer<>(props);

        // 3. Abonnement au topic
        consumer.subscribe(Collections.singletonList("my-topic"));

        // 4. Lecture des messages
        while (true) {
            ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
            for (ConsumerRecord<String, String> record : records) {
                System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
            }
        }
    }
}

Méthodes et fonctions principales de la bibliothèque

Voici les méthodes clés utilisées avec le client Kafka.

1.

Recommendations