API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) · पाठ

Eureka/Consul के साथ एकीकरण

किसी सेवा रजिस्ट्री, जैसे Eureka या Consul, के साथ पंजीकरण और वहाँ से सेवाओं की खोज करने के लिए Spring Cloud Gateway कॉन्फ़िगर कीजिए।

पाठ 1, कुल 4 में से12 चरण

Eureka/Consul के साथ एकीकरण, CoddyKit पर API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

सेवा खोज क्या है

माइक्रोसर्विस आर्किटेक्चर में सेवाएँ अक्सर गतिशील होती हैं। वे बढ़ या घट सकती हैं और उनके नेटवर्क स्थान (IP पते, पोर्ट) बार-बार बदल सकते हैं।

सेवा खोज एक ऐसी व्यवस्था है जो अनुप्रयोगों और सेवाओं को उनके नेटवर्क स्थानों को कोड में स्थायी रूप से लिखे बिना एक-दूसरे को खोजने में सहायता करती है। यह आपकी सेवाओं के लिए एक गतिशील फ़ोन डायरेक्टरी जैसी है!

सेवा रजिस्ट्री: Eureka और Consul

सेवा रजिस्ट्री एक केंद्रीय सर्वर है जो उपलब्ध सेवा इंस्टेंसों और उनके नेटवर्क स्थानों की सूची बनाए रखता है।

  • Netflix Eureka: एक बहुत लोकप्रिय विकल्प, विशेष रूप से Spring Cloud पारिस्थितिकी तंत्र में। सेवाएँ स्वयं को Eureka के साथ पंजीकृत करती हैं।
  • HashiCorp Consul: एक अन्य सशक्त विकल्प, जो वितरित कुंजी-मान संग्रह और स्वास्थ्य जाँचों के साथ सेवा खोज की सुविधा देता है।

दोनों सेवाओं को स्वयं को पंजीकृत करने और अन्य सेवाओं को खोजने की सुविधा देते हैं।

गेटवे को सेवा खोज की आवश्यकता

Spring Cloud Gateway आपकी माइक्रोसर्विसों में प्रवेश बिंदु के रूप में कार्य करता है।

प्रत्येक बैकएंड सेवा के लिए निश्चित URL वाले मार्ग कॉन्फ़िगर करने के बजाय, गेटवे किसी सेवा रजिस्ट्री से पूछ सकता है:

  • "'user-service' अभी कहाँ चल रही है?"
  • "मुझे 'product-service' का कोई उपलब्ध इंस्टेंस दें।"

इससे लचीला, गतिशील और मजबूत मार्ग-निर्धारण संभव होता है, क्योंकि गेटवे को पहले से सेवा स्थानों की जानकारी रखने की आवश्यकता नहीं होती।

नमूना सेवा: Eureka क्लाइंट कॉन्फ़िगरेशन

पहले देखते हैं कि एक सरल Spring Boot सेवा को Eureka सर्वर के साथ स्वयं को पंजीकृत करने के लिए कैसे कॉन्फ़िगर किया जाता है।

हम hello-service नामक सेवा का उपयोग करेंगे। इसकी application.yml फ़ाइल Eureka सर्वर के defaultZone की ओर संकेत करेगी।

spring:
  application:
    name: hello-service
server:
  port: 8081
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka

सेवा में Eureka क्लाइंट सक्षम करना

हमारी hello-service को वास्तव में Eureka के साथ पंजीकृत करने के लिए, हमें इसकी मुख्य अनुप्रयोग क्लास में @EnableEurekaClient एनोटेशन जोड़ना होगा।

यह एनोटेशन Eureka Discovery Client की कार्यक्षमता सक्रिय करता है।

package com.example.helloservice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@EnableEurekaClient
@SpringBootApplication
@RestController
public class HelloServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloServiceApplication.class, args);
    }

    @GetMapping("/hello")
    public String hello() {
        return "Hello from Hello Service!";
    }
}

Eureka के लिए गेटवे कॉन्फ़िगरेशन

अब अपने Spring Cloud Gateway को उसी Eureka सर्वर से जुड़ने के लिए कॉन्फ़िगर करते हैं। अन्य सेवाओं को खोजने के लिए गेटवे स्वयं भी Eureka क्लाइंट के रूप में कार्य करता है।

इसकी application.yml फ़ाइल Eureka सर्वर का URL और अपने अनुप्रयोग का नाम निर्दिष्ट करेगी।

server:
  port: 8080
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka
  instance:
    hostname: localhost
spring:
  application:
    name: api-gateway

गेटवे में सेवा खोज सक्षम करना

बैकएंड सेवा की तरह, गेटवे की मुख्य अनुप्रयोग क्लास में भी उसकी सेवा खोज क्षमताएँ सक्षम करने के लिए एक एनोटेशन आवश्यक है।

गेटवे के लिए खोज क्लाइंट सक्रिय करने हेतु Spring Boot को बताने के लिए @EnableDiscoveryClient का उपयोग करें।

package com.example.apigateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient
@SpringBootApplication
public class ApiGatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(ApiGatewayApplication.class, args);
    }
}

सेवा ID के माध्यम से मार्ग-निर्धारण

सेवा खोज सक्षम होने पर हम निश्चित URL के बजाय किसी सेवा की पंजीकृत ID का उपयोग करके गेटवे मार्ग परिभाषित कर सकते हैं।

lb:// उपसर्ग ('load balancer' के लिए) गेटवे को निर्दिष्ट सेवा नाम (जैसे, hello-service) के इंस्टेंस खोजने और फिर अनुरोध का मार्ग निर्धारित करने के लिए अपने खोज क्लाइंट का उपयोग करने का निर्देश देता है।

spring:
  cloud:
    gateway:
      routes:
        - id: hello_route
          uri: lb://hello-service
          predicates:
            - Path=/hello/**

अनुरोध का प्रवाह

http://localhost:8080/hello के अनुरोध का प्रवाह देखते हैं:

  1. गेटवे (पोर्ट 8080 पर सुन रहा है) अनुरोध प्राप्त करता है।
  2. यह /hello/** पथ predicate का मिलान hello_route से करता है।
  3. गेटवे hello-service का कोई उपलब्ध इंस्टेंस खोजने के लिए अपने Eureka क्लाइंट का उपयोग करता है।
  4. Eureka किसी इंस्टेंस का पता लौटाता है (जैसे, localhost:8081)।
  5. गेटवे अनुरोध को http://localhost:8081/hello पर अग्रेषित करता है।
  6. hello-service अनुरोध को संसाधित करके प्रतिक्रिया लौटाती है, जिसे गेटवे फिर क्लाइंट को वापस भेजता है।

Consul: एक अन्य विकल्प

हालाँकि Eureka का व्यापक रूप से उपयोग किया जाता है, HashiCorp का Consul भी सेवा खोज और कॉन्फ़िगरेशन प्रबंधन का एक शक्तिशाली उपकरण है।

Consul का उपयोग करने के लिए आम तौर पर आप Spring Cloud Consul Discovery निर्भरता जोड़ेंगे और अपने गेटवे/सेवाओं को Consul एजेंट की ओर संकेत करने के लिए कॉन्फ़िगर करेंगे (जो आमतौर पर पोर्ट 8500 पर चलता है)।

सिद्धांत वही रहता है: गेटवे Consul में पंजीकृत सेवाओं को गतिशील रूप से खोजने और उनके लिए मार्ग निर्धारित करने हेतु सेवा IDs (जैसे, lb://my-service) का उपयोग करता है।

spring:
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: api-gateway

गेटवे सेवा खोज जाँच

आपने अपने Spring Cloud Gateway को सेवा खोज के लिए Eureka का उपयोग करने के लिए कॉन्फ़िगर किया है और my-service नामक सेवा Eureka में पंजीकृत है।

कौन-सा uri कॉन्फ़िगरेशन सेवा खोज के माध्यम से my-service के लिए अनुरोधों का सही मार्ग निर्धारित करेगा?

पाठ का सारांश

इस पाठ में आपने निम्नलिखित के बारे में सीखा:

  • गतिशील माइक्रोसर्विस परिवेशों में सेवा खोज का महत्व।
  • Eureka और Consul केंद्रीय सेवा रजिस्ट्री के रूप में कैसे कार्य करते हैं।
  • बैकएंड सेवाओं और Spring Cloud Gateway, दोनों को खोज क्लाइंट के रूप में कॉन्फ़िगर करना।
  • गतिशील मार्ग-निर्धारण के लिए सेवा IDs (जैसे, lb://service-name) का उपयोग करके गेटवे मार्ग परिभाषित करना।

मापनीय और मजबूत माइक्रोसर्विस आर्किटेक्चर बनाने के लिए यह एकीकरण मूलभूत है। आगे हम अधिक गतिशील मार्ग-निर्धारण नियमों और predicates का अध्ययन करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “Eureka/Consul के साथ एकीकरण” पाठ निःशुल्क है?

हाँ—“Eureka/Consul के साथ एकीकरण” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Eureka/Consul के साथ एकीकरण” में मैं क्या सीखूँगा?

किसी सेवा रजिस्ट्री, जैसे Eureka या Consul, के साथ पंजीकरण और वहाँ से सेवाओं की खोज करने के लिए Spring Cloud Gateway कॉन्फ़िगर कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“Eureka/Consul के साथ एकीकरण” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Eureka/Consul के साथ एकीकरण
  2. सेवा खोज के साथ डायनेमिक रूटिंग
  3. Spring Cloud LoadBalancer से लोड संतुलन
  4. lb:// URI और डिस्कवरी लोकेटर
← API गेटवे और रिवर्स प्रॉक्सी (Nginx + Spring Cloud Gateway) पर वापस जाएँ