Spring Boot और Schema Registry का एकीकरण
Avro क्रमांकन और डीसीरियलाइज़ेशन को अपने-आप संभालने के लिए Confluent Schema Registry को Spring Boot Kafka अनुप्रयोगों के साथ एकीकृत कीजिए।
Spring Boot और Schema Registry का एकीकरण, CoddyKit पर उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Schema Registry एकीकरण में आपका स्वागत है
पिछले पाठों में आपने स्कीमा प्रबंधन के महत्व और Apache Avro का उपयोग करके स्कीमा निर्धारित करने का तरीका सीखा। अब इन सभी बातों को एक साथ लागू करने का समय है!
यह पाठ आपको Confluent Schema Registry को अपने Spring Boot Kafka अनुप्रयोगों के साथ एकीकृत करने का तरीका बताएगा। यह एकीकरण Avro क्रमांकन और क्रम-विपर्यय को स्वचालित करता है, जिससे आपकी डेटा पाइपलाइन अधिक विश्वसनीय और प्रबंधित करने में आसान बनती हैं।
Confluent Schema Registry क्या है
Confluent Schema Registry एक स्वतंत्र सेवा है, जो Avro स्कीमा के लिए केंद्रीकृत भंडार उपलब्ध कराती है। यह एक द्वारपाल की तरह काम करती है और सुनिश्चित करती है कि आपके Kafka विषयों से होकर गुजरने वाला सभी डेटा पहले से निर्धारित स्कीमा के अनुरूप हो।
- यह आपके सभी स्कीमा का संस्करणयुक्त इतिहास संग्रहीत करती है।
- यह स्कीमा पंजीकृत करने और प्राप्त करने के लिए RESTful इंटरफ़ेस उपलब्ध कराती है।
- यह प्रत्येक पंजीकृत स्कीमा को एक विशिष्ट ID देती है।
यह केंद्रीकृत प्रबंधन पुराने अनुप्रयोगों को प्रभावित किए बिना स्कीमा विकसित करने के लिए महत्वपूर्ण है।
Kafka के साथ यह कैसे काम करता है
Kafka के साथ Schema Registry का उपयोग करते समय:
- उत्पादक संदेश भेजते हैं और नया होने पर पहले अपना Avro स्कीमा Registry में पंजीकृत करते हैं। इसके बाद वे क्रमांकित Avro डेटा के साथ संदेश के पेलोड (या हेडर) में एक छोटा स्कीमा ID शामिल करते हैं।
- उपभोक्ता संदेश प्राप्त करते हैं, स्कीमा ID निकालते हैं और Registry से संबंधित स्कीमा प्राप्त करते हैं। फिर वे इस स्कीमा का उपयोग Avro डेटा का सही क्रम-विपर्यय करने के लिए करते हैं।
सही ढंग से कॉन्फ़िगर किए जाने के बाद यह प्रक्रिया आपके अनुप्रयोग कोड के लिए अधिकांशतः पारदर्शी रहती है।
Avro के लिए निर्भरताएँ जोड़ना
Spring Kafka और Schema Registry के साथ Avro क्रमांकन और क्रम-विपर्यय सक्षम करने के लिए आपको अपने प्रोजेक्ट में कुछ विशेष निर्भरताएँ जोड़नी होंगी। Maven के लिए आमतौर पर kafka-avro-serializer लाइब्रेरी आवश्यक होती है।
मुख्य निर्भरताएँ ये हैं:
spring-kafka: Spring Kafka की मुख्य कार्यक्षमता।kafka-avro-serializer: Confluent का Avro क्रमांकक/क्रम-विपर्ययक।avro: Apache Avro की मुख्य लाइब्रेरी।
आपको अपने .avsc स्कीमा फ़ाइलों से Java क्लास बनाने के लिए एक प्लगइन (जैसे avro-maven-plugin) भी कॉन्फ़िगर करना होगा।
Schema Registry क्लाइंट कॉन्फ़िगर करना
Spring Boot को यह पता होना चाहिए कि आपका Confluent Schema Registry कहाँ चल रहा है। आप इसे अपनी application.properties या application.yml फ़ाइल में निर्दिष्ट करते हैं।
spring.kafka.properties.schema.registry.url प्रॉपर्टी अत्यंत महत्वपूर्ण है। आइए एक उदाहरण देखते हैं:
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=io.confluent.kafka.serializers.KafkaAvroSerializer
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer
spring.kafka.properties.schema.registry.url=http://localhost:8081हमारी Avro संदेश क्लास निर्धारित करना
Avro संदेश भेजने या प्राप्त करने से पहले हमें एक Avro स्कीमा और उससे संबंधित Java क्लास की आवश्यकता होती है। आमतौर पर आप एक .avsc फ़ाइल निर्धारित करते हैं और Java क्लास बनाने के लिए एक build प्लगइन का उपयोग करते हैं।
हमारे उदाहरण के लिए मान लीजिए कि हमारे पास एक सरल User Avro स्कीमा है। इससे name और age जैसे फ़ील्ड वाली com.coddykit.User जैसी Java क्लास बनेगी। हम इस बनाई गई क्लास का सीधे अपने Spring Boot कोड में उपयोग करेंगे।
उत्पादक-पक्ष Avro क्रमांकन
जब आपका Spring Boot अनुप्रयोग Avro क्रमांकक और Schema Registry URL के साथ कॉन्फ़िगर हो जाता है, तब Avro संदेश भेजना सरल होता है। KafkaTemplate क्रमांकन और Schema Registry के साथ संपर्क को स्वचालित रूप से संभालता है।
यहाँ Spring Boot उत्पादक द्वारा User ऑब्जेक्ट भेजने का एक सरल उदाहरण है:
package com.coddykit.producer;
import com.coddykit.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.core.KafkaTemplate;
@SpringBootApplication
public class AvroProducerApplication implements CommandLineRunner {
@Autowired
private KafkaTemplate<String, User> kafkaTemplate;
public static void main(String[] args) {
SpringApplication.run(AvroProducerApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
String topic = "users-avro-topic";
User user = new User("Alice", 30);
kafkaTemplate.send(topic, "user-key-1", user);
System.out.println("Sent Avro User: " + user);
}
}
// Simplified User class for demonstration (generated from Avro schema)
// public class User {
// private String name;
// private int age;
// public User(String name, int age) { this.name = name; this.age = age; }
// public String getName() { return name; }
// public int getAge() { return age; }
// @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; }
// }उपभोक्ता-पक्ष Avro क्रम-विपर्यय
इसी प्रकार, उपभोक्ता पक्ष पर Spring का @KafkaListener, Avro क्रम-विपर्ययक और Schema Registry कॉन्फ़िगरेशन के साथ मिलकर, आने वाले Avro संदेश के बाइट्स को आपके Java Avro ऑब्जेक्ट में स्वचालित रूप से बदल देता है।
आपको अपने लिसनर मेथड के हस्ताक्षर में लक्ष्य Avro क्लास का प्रकार निर्दिष्ट करना होता है।
package com.coddykit.consumer;
import com.coddykit.User;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.kafka.annotation.KafkaListener;
@SpringBootApplication
public class AvroConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(AvroConsumerApplication.class, args);
}
@KafkaListener(topics = "users-avro-topic", groupId = "avro-group")
public void listen(User user) {
System.out.println("Received Avro User: " + user);
}
}स्कीमा विकास संभालना
Avro के साथ Schema Registry का उपयोग करने का एक सबसे शक्तिशाली लाभ स्कीमा विकास का समर्थन है। जैसे-जैसे आपके अनुप्रयोग की आवश्यकताएँ बदलती हैं, आपको अपने Avro स्कीमा में फ़ील्ड जोड़ने, हटाने या संशोधित करने की आवश्यकता हो सकती है।
Schema Registry यह सुनिश्चित करने में सहायता करती है कि उत्पादक नए स्कीमा संस्करण वाले डेटा भेजे, तब भी पुराने उपभोक्ता (और इसके विपरीत) संदेशों को बिना त्रुटियों के संसाधित कर सकें, बशर्ते स्कीमा में किए गए बदलाव संगत हों (जैसे डिफ़ॉल्ट मान वाला फ़ील्ड जोड़ना)।
एकीकरण के प्रमुख लाभ
Confluent Schema Registry को Spring Boot Kafka अनुप्रयोगों के साथ एकीकृत करने से कई महत्वपूर्ण लाभ मिलते हैं:
- डेटा संगतता: यह सुनिश्चित करती है कि उत्पादक और उपभोक्ता हमेशा डेटा के प्रारूप पर सहमत हों, जिससे क्रम-विपर्यय त्रुटियाँ रुकती हैं।
- स्कीमा विकास: समय के साथ होने वाले स्कीमा बदलावों को सहजता से संभालती है।
- कम दोहराव वाला कोड: स्वचालित क्रमांकन और क्रम-विपर्यय का अर्थ है कि कम मैन्युअल कोड लिखना पड़ता है।
- केंद्रीकृत प्रबंधन: आपके सभी इवेंट स्कीमा के लिए सत्य का एकमात्र स्रोत।
- सशक्त टाइपिंग: बेहतर डेटा गुणवत्ता और डेवलपर अनुभव के लिए Avro की सशक्त टाइपिंग का लाभ।
त्वरित जाँच: Schema Registry का उद्देश्य
Avro का उपयोग करने वाले Spring Boot Kafka अनुप्रयोगों के साथ एकीकृत होने पर Confluent Schema Registry की प्राथमिक भूमिका क्या है?
पुनरावलोकन: Spring के साथ सहज Avro
बहुत अच्छा! आपने Confluent Schema Registry को अपने Spring Boot Kafka अनुप्रयोगों के साथ एकीकृत करना सीख लिया है। यह शक्तिशाली संयोजन Avro क्रमांकन और क्रम-विपर्यय को स्वचालित करता है, जिससे आपके इवेंट-आधारित माइक्रोसर्विस अधिक विश्वसनीय और रखरखाव योग्य बनते हैं।
- हमने Schema Registry की भूमिका और इसके काम करने का तरीका देखा।
- आपने Spring Boot को Avro और Schema Registry के लिए कॉन्फ़िगर करना देखा।
- हमने Avro ऑब्जेक्ट को सहजता से संभालने के लिए उत्पादक और उपभोक्ता के उदाहरणों का अध्ययन किया।
- हमने स्कीमा विकास और डेटा संगतता के लाभों पर चर्चा की।
Schema Registry का लाभ उठाकर आप सुनिश्चित करते हैं कि आपके अनुप्रयोगों के विकसित होने पर भी आपके डेटा अनुबंधों का हमेशा पालन हो।
एआई शिक्षक के साथ उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “Spring Boot और Schema Registry का एकीकरण” पाठ निःशुल्क है?
हाँ — उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Spring Boot और Schema Registry का एकीकरण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Spring Boot और Schema Registry का एकीकरण” में मैं क्या सीखूँगा?
Avro क्रमांकन और डीसीरियलाइज़ेशन को अपने-आप संभालने के लिए Confluent Schema Registry को Spring Boot Kafka अनुप्रयोगों के साथ एकीकृत कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“Spring Boot और Schema Registry का एकीकरण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर उन्नत Spring Boot 4: घटना-प्रेरित संरचना (काफ्का) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- स्कीमा प्रबंधन का महत्व
- स्कीमा परिभाषा के लिए Avro
- Spring Boot और Schema Registry का एकीकरण
- स्कीमा विकास और संगतता मोड