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.
Aussi dans la bibliothèque
Cryptographie en Rust avec la bibliothèque RustCrypto
Autorisation et authentification en Kotlin : Ktor, JWT et Spring Security
Client HTTP pour C++ : top bibliothèques pour travailler avec le réseau
Traitement Markdown en Rust : bibliothèques, parseurs et outils
DashMap Rust : guide complet avec exemples