Apache Kafka Client for Java का परिचय
Apache Kafka एक वितरित इवेंट स्ट्रीमिंग प्लेटफॉर्म है जो रियल-टाइम में डेटा स्ट्रीम को प्रकाशित, संग्रहीत और प्रोसेस करने की अनुमति देता है। Java के लिए Kafka Client लाइब्रेरी आधिकारिक क्लाइंट है जो Kafka ब्रोकर्स के साथ इंटरैक्ट करने के लिए API प्रदान करती है। यह Java एप्लिकेशन को प्रोड्यूसर (संदेश भेजना) और कंज्यूमर (संदेश पढ़ना) के रूप में कार्य करने के साथ-साथ मेटाडेटा और प्रशासनिक कार्यों को प्रबंधित करने में सक्षम बनाती है।
यह लाइब्रेरी माइक्रोसर्विस आर्किटेक्चर, लॉग प्रोसेसिंग सिस्टम, ETL पाइपलाइन, रियल-टाइम एनालिटिक्स सिस्टम और किसी भी अन्य परिदृश्य के निर्माण में अपरिहार्य है जहां घटकों के बीच विश्वसनीय, स्केलेबल और दोष-सहिष्णु डेटा ट्रांसफर की आवश्यकता होती है।
Java के लिए Kafka Client की स्थापना
Java के लिए Kafka Client Maven Central Repository के माध्यम से वितरित किया जाता है। प्रोजेक्ट में लाइब्रेरी जोड़ने के लिए, pom.xml (Maven के लिए) या build.gradle (Gradle के लिए) फ़ाइल में निर्भरता निर्दिष्ट करना आवश्यक है।
Maven
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>3.6.0</version> <!-- नवीनतम संस्करण का उपयोग करें -->
</dependency>
Gradle
implementation 'org.apache.kafka:kafka-clients:3.6.0'
निर्भरता जोड़ने और प्रोजेक्ट को अपडेट करने के बाद, लाइब्रेरी की सभी क्लासेज इम्पोर्ट के लिए उपलब्ध होंगी।
त्वरित शुरुआत: Producer और Consumer
आइए संदेश भेजने और प्राप्त करने का एक न्यूनतम उदाहरण देखें।
Producer (भेजने वाला)
import org.apache.kafka.clients.producer.*;
import java.util.Properties;
public class SimpleProducer {
public static void main(String[] args) {
// 1. प्रॉपर्टीज सेट करें
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<String, String> producer = new KafkaProducer<>(props);
// 3. संदेश भेजें
ProducerRecord<String, String> record = new ProducerRecord<>("my-topic", "key1", "Hello, Kafka!");
producer.send(record);
// 4. प्रोड्यूसर बंद करें
producer.close();
}
}
Consumer (प्राप्त करने वाला)
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. प्रॉपर्टीज सेट करें
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<String, String> consumer = new KafkaConsumer<>(props);
// 3. टॉपिक पर सब्सक्राइब करें
consumer.subscribe(Collections.singletonList("my-topic"));
// 4. संदेश पढ़ें
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());
}
}
}
}
लाइब्रेरी के मुख्य तरीके और कार्य
आइए Kafka Client के साथ काम करते समय उपयोग किए जाने वाले प्रमुख तरीकों पर नज़र डालें।