Einführung in den Apache Kafka Client für Java
Apache Kafka ist eine verteilte Event-Streaming-Plattform, die es ermöglicht, Datenströme in Echtzeit zu veröffentlichen, zu speichern und zu verarbeiten. Die Bibliothek Kafka Client für Java ist der offizielle Client, der eine API für die Interaktion mit Kafka-Brokern bereitstellt. Sie ermöglicht Java-Anwendungen, als Producer (Nachrichten senden) und Consumer (Nachrichten lesen) zu agieren sowie Metadaten und administrative Aufgaben zu verwalten.
Diese Bibliothek ist unverzichtbar für den Aufbau von Microservice-Architekturen, Logverarbeitungssystemen, ETL-Pipelines, Echtzeit-Analyseplattformen und allen anderen Szenarien, die eine zuverlässige, skalierbare und ausfallsichere Datenübertragung zwischen Komponenten erfordern.
Installation des Kafka Clients für Java
Der Kafka Client für Java wird über das Maven Central Repository vertrieben. Um die Bibliothek in Ihr Projekt einzubinden, müssen Sie die Abhängigkeit in der Datei pom.xml (für Maven) oder build.gradle (für Gradle) angeben.
Maven
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.6.0</version> <!-- Aktuelle Version verwenden -->
</dependency>
Gradle
implementation 'org.apache.kafka:kafka-clients:3.6.0'
Nachdem Sie die Abhängigkeit hinzugefügt und das Projekt aktualisiert haben, stehen alle Klassen der Bibliothek für den Import zur Verfügung.
Schnellstart: Producer und Consumer
Betrachten wir ein minimales Beispiel zum Senden und Empfangen einer Nachricht.
Producer (Sender)
import org.apache.kafka.clients.producer.*;
import java.util.Properties;
public class SimpleProducer {
public static void main(String[] args) {
// 1. Eigenschaften konfigurieren
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. Producer erstellen
Producer<String, String> producer = new KafkaProducer<>(props);
// 3. Nachricht senden
ProducerRecord<String, String> record = new ProducerRecord<>("my-topic", "key1", "Hallo, Kafka!");
producer.send(record);
// 4. Producer schließen
producer.close();
}
}
Consumer (Empfänger)
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. Eigenschaften konfigurieren
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. Consumer erstellen
Consumer<String, String> consumer = new KafkaConsumer<>(props);
// 3. Auf Topic abonnieren
consumer.subscribe(Collections.singletonList("my-topic"));
// 4. Nachrichten lesen
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());
}
}
}
}
Wichtige Methoden und Funktionen der Bibliothek
Betrachten wir die wichtigsten Methoden, die bei der Arbeit mit dem Kafka Client verwendet werden.
1.
Auch in der Bibliothek
Arbeit mit Apache Kafka in C++: Bibliotheken und Beispiele
Testen in Kotlin: Frameworks und Werkzeuge für qualitativ hochwertigen Code
Redis-Client für Node.js: ioredis – vollständige Anleitung
Caching in Java: Redis, Caffeine, Ehcache – ein vollständiger Leitfaden