सेवा खोज और API गेटवे
जानें कि Clojure माइक्रोसर्विस एक-दूसरे को गतिशील रूप से कैसे खोजती हैं और API गेटवे आपके सिस्टम के लिए एकल, सुरक्षित प्रवेश-बिंदु कैसे प्रदान करता है।
सेवा खोज और API गेटवे, CoddyKit पर Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
Discovery की समस्या
Microservice system में instances शुरू, बंद और hosts के बीच स्थानांतरित होते रहते हैं। IP addresses को hardcode करना जल्दी ही समस्या बन जाता है। Service discovery services को एक-दूसरे का स्थान गतिशील रूप से खोजने देता है।
Service Registries
सेवा रजिस्ट्री उपलब्ध सेवाओं और उनके नेटवर्क स्थानों का डेटाबेस होती है। लोकप्रिय विकल्पों में Consul, etcd और Eureka शामिल हैं।
सेवा पंजीकृत करना
शुरू होते समय कोई सेवा स्वयं को रजिस्ट्री के साथ पंजीकृत करती है और एक स्वास्थ्य-जाँच एंडपॉइंट भी देती है, ताकि सेवा बंद हो जाने पर रजिस्ट्री उसे हटा सके।
(defn register! [consul-url name host port]
(http/put (str consul-url "/v1/agent/service/register")
{:body (json/write-str
{:Name name :Address host :Port port
:Check {:HTTP (str "http://" host ":" port "/health")
:Interval "10s"}})}))क्लाइंट-पक्षीय खोज
क्लाइंट-पक्षीय खोज में, अनुरोध करने वाली सेवा स्वस्थ इंस्टेंस के लिए रजिस्ट्री से पूछताछ करती है और स्वयं उनमें से एक चुनती है।
(defn lookup [consul-url name]
(-> (http/get (str consul-url "/v1/health/service/" name "?passing"))
:body
json/read-str))सर्वर-पक्षीय खोज
सर्वर-पक्षीय खोज में, क्लाइंट किसी लोड बैलेंसर या gateway को कॉल करता है, जो रजिस्ट्री से जानकारी लेकर अनुरोध को आगे भेजता है। इससे क्लाइंट सरल बना रहता है।
API gateway क्या है?
API gateway एकल प्रवेश-बिंदु होता है, जो आने वाले अनुरोधों को सही बैकएंड सेवा तक भेजता है। यह आंतरिक संरचना को क्लाइंट से छिपाकर रखता है।
gateway की ज़िम्मेदारियाँ
रूटिंग के अलावा, gateway अक्सर कई सेवाओं से संबंधित साझा चिंताओं को भी संभालता है:
- प्रमाणीकरण और अनुमति-निर्धारण
- दर-सीमा निर्धारण
- अनुरोध/प्रतिक्रिया का रूपांतरण
- कई सेवा-कॉल के परिणामों को एकत्र करना
Ring में एक सरल gateway
आप पथ का मिलान करके और खोजी गई सेवा को प्रॉक्सी अनुरोध भेजकर Clojure में एक बुनियादी gateway बना सकते हैं।
(defn gateway [request]
(let [service (route-for (:uri request))
target (lookup-instance service)]
(http/request
(assoc request :url (str target (:uri request))))))किनारे पर प्रमाणीकरण
gateway पर प्रमाणीकरण को केंद्रीकृत करने का अर्थ है कि अलग-अलग सेवाएँ gateway पर भरोसा करें और लॉगिन तर्क को दोहराने से बचें।
(defn wrap-gateway-auth [handler]
(fn [request]
(if (valid-token? (get-in request [:headers "authorization"]))
(handler request)
{:status 401 :body "Unauthorized"})))दर-सीमा निर्धारण
सेवाओं तक अनुरोध पहुँचने से पहले हानिकारक क्लाइंट की गति सीमित करने के लिए gateway स्वाभाविक स्थान है।
(defn wrap-rate-limit [handler limit]
(fn [request]
(if (under-limit? (client-id request) limit)
(handler request)
{:status 429 :body "Too Many Requests"})))सब कुछ एक साथ
उत्पादन व्यवस्था में सेवाएँ स्वास्थ्य-जाँच के साथ रजिस्ट्री में स्वयं को पंजीकृत करती हैं, और gateway उन्हें खोजकर प्रमाणीकरण तथा दर-सीमा लागू करता है, फिर अनुरोधों को सही स्थान पर भेजता है। इससे क्लाइंट आंतरिक बदलावों से अलग बने रहते हैं।
त्वरित जाँच
अपनी खोज-संबंधी समझ का परीक्षण कीजिए।
पुनरावृत्ति
आपने सीखा कि सेवाएँ एक-दूसरे को कैसे खोजती हैं और gateway पहुँच को एकीकृत कैसे करता है।
- Consul जैसी रजिस्ट्रियाँ स्वास्थ्य-जाँच के माध्यम से इंस्टेंस का पता रखती हैं
- खोज क्लाइंट-पक्षीय या सर्वर-पक्षीय हो सकती है
- gateway रूटिंग, प्रमाणीकरण और दर-सीमा निर्धारण को केंद्रीकृत करते हैं
एआई शिक्षक के साथ Clojure सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “सेवा खोज और API गेटवे” पाठ निःशुल्क है?
हाँ—“सेवा खोज और API गेटवे” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“सेवा खोज और API गेटवे” में मैं क्या सीखूँगा?
जानें कि Clojure माइक्रोसर्विस एक-दूसरे को गतिशील रूप से कैसे खोजती हैं और API गेटवे आपके सिस्टम के लिए एकल, सुरक्षित प्रवेश-बिंदु कैसे प्रदान करता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“सेवा खोज और API गेटवे” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Clojure में कार्यात्मक प्रोग्रामिंग और JVM बैकएंड विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Clojure माइक्रोसर्विस का डिज़ाइन
- Docker से कंटेनरीकरण
- क्लाउड प्लेटफ़ॉर्म पर परिनियोजन
- सेवा खोज और API गेटवे