"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > स्प्रिंग क्लाउड के साथ माइक्रोसर्विसेज आर्किटेक्चर

स्प्रिंग क्लाउड के साथ माइक्रोसर्विसेज आर्किटेक्चर

2024-07-29 को प्रकाशित
ब्राउज़ करें:775

Microservices Architecture with Spring Cloud

माइक्रोसर्विसेज आर्किटेक्चर एक डिज़ाइन दृष्टिकोण है जहां एक एप्लिकेशन शिथिल युग्मित सेवाओं से बना होता है। प्रत्येक सेवा एक विशिष्ट कार्यक्षमता के लिए ज़िम्मेदार है और इसे स्वतंत्र रूप से विकसित, तैनात और स्केल किया जा सकता है। स्प्रिंग क्लाउड टूल और फ्रेमवर्क का एक सूट है जो मजबूत और स्केलेबल माइक्रोसर्विसेज बनाने में मदद करता है।

माइक्रोसर्विसेज क्या हैं?
माइक्रोसर्विसेज जटिल अनुप्रयोगों को छोटी, प्रबंधनीय सेवाओं में तोड़ देती है। प्रत्येक माइक्रोसर्विस एकल व्यवसाय क्षमता पर ध्यान केंद्रित करती है और अच्छी तरह से परिभाषित एपीआई के माध्यम से अन्य सेवाओं के साथ संचार करती है, आमतौर पर REST या मैसेजिंग कतारों का उपयोग करती है।

माइक्रोसर्विसेज के लाभ

  • स्केलेबिलिटी: व्यक्तिगत सेवाओं को मांग के आधार पर स्वतंत्र रूप से बढ़ाया जा सकता है।
  • लचीलापन: विभिन्न प्रौद्योगिकियों और भाषाओं का उपयोग करके विभिन्न सेवाएं विकसित की जा सकती हैं।
  • दोष अलगाव: एक सेवा में विफलता पूरे सिस्टम को प्रभावित नहीं करती है।
  • निरंतर तैनाती: सेवाओं की लगातार और स्वतंत्र तैनाती को सक्षम बनाता है।

स्प्रिंग क्लाउड के प्रमुख घटक:

1. स्प्रिंग क्लाउड कॉन्फ़िगरेशन:

  • केंद्रीकृत बाहरी कॉन्फ़िगरेशन प्रबंधन।
  • गिट, एसवीएन और स्थानीय फ़ाइलों जैसे विभिन्न कॉन्फ़िगरेशन स्रोतों का समर्थन करता है।
  • उदाहरण: कई सेवाओं में डेटाबेस क्रेडेंशियल, एपीआई कुंजी और अन्य गुणों को कॉन्फ़िगर करना।

2. स्प्रिंग क्लाउड नेटफ्लिक्स:

  • यूरेका, हिस्ट्रिक्स, ज़ूल और रिबन जैसे नेटफ्लिक्स ओएसएस घटकों को एकीकृत करता है।
  • यूरेका: सेवा खोज सर्वर और क्लाइंट।
  • हिस्ट्रिक्स: दोष सहनशीलता के लिए सर्किट ब्रेकर।
  • ज़ुउल: डायनेमिक रूटिंग के लिए एपीआई गेटवे।
  • रिबन: क्लाइंट-साइड लोड संतुलन।

3. स्प्रिंग क्लाउड गेटवे:

  • ज़ुउल की जगह एक नई परियोजना।
  • अनुरोधों को रूट करने का एक सरल और प्रभावी तरीका प्रदान करता है।
  • पथ पुनर्लेखन, लोड संतुलन और रूट फ़िल्टर जैसी सुविधाएं।

4. स्प्रिंग क्लाउड स्लीथ:

  • माइक्रोसर्विसेज में अनुरोधों के प्रवाह को ट्रैक करने के लिए वितरित ट्रेसिंग।
  • निगरानी और विश्लेषण के लिए जिपकिन के साथ एकीकृत होता है।

5. स्प्रिंग क्लाउड स्ट्रीम:

  • इवेंट-संचालित माइक्रोसर्विसेज के निर्माण के लिए रूपरेखा।
  • RabbitMQ और Apache Kafka जैसे मैसेजिंग सिस्टम का उपयोग करता है।

स्प्रिंग क्लाउड के साथ एक सरल माइक्रोसर्विसेज एप्लिकेशन का निर्माण:

स्प्रिंग बूट प्रोजेक्ट स्थापित करना:

  • प्रत्येक माइक्रोसर्विस के लिए अलग स्प्रिंग बूट प्रोजेक्ट बनाएं।
  • pom.xml या build.gradle में स्प्रिंग क्लाउड घटकों के लिए निर्भरता परिभाषित करें।

स्प्रिंग क्लाउड कॉन्फ़िगरेशन सर्वर को कॉन्फ़िगर करना:

  • बाहरी कॉन्फ़िगरेशन प्रबंधित करने के लिए एक कॉन्फ़िग सर्वर सेट करें।
  • केंद्रीकृत कॉन्फ़िगरेशन के लिए माइक्रोसर्विसेज को कॉन्फिग सर्वर पर इंगित करें।

यूरेका के साथ सर्विस डिस्कवरी:

  • सेवा पंजीकरण और खोज के लिए एक यूरेका सर्वर स्थापित करें।
  • यूरेका सर्वर के साथ पंजीकरण करने के लिए प्रत्येक माइक्रोसर्विस को कॉन्फ़िगर करें।

स्प्रिंग क्लाउड गेटवे के साथ एपीआई गेटवे:

  • विभिन्न माइक्रोसर्विसेज के लिए रूटिंग अनुरोधों के लिए एक स्प्रिंग क्लाउड गेटवे स्थापित करें।
  • अनुरोधों को संभालने के लिए रूटिंग नियमों और फ़िल्टर को परिभाषित करें।

हिस्ट्रिक्स के साथ लचीलापन जोड़ना:

  • सर्किट ब्रेकिंग और फ़ॉलबैक तंत्र के लिए हिस्ट्रिक्स को एकीकृत करें।
  • सर्किट ब्रेकिंग सक्षम करने के लिए @HystrixCommand के साथ तरीकों को एनोटेट करें।

स्प्रिंग क्लाउड स्लीथ के साथ वितरित ट्रेसिंग:

  • अनुरोधों के प्रवाह का पता लगाने और लॉग करने के लिए स्लीथ निर्भरताएँ जोड़ें।
  • ट्रेसिंग डेटा की कल्पना और विश्लेषण करने के लिए ज़िपकिन का उपयोग करें।

उदाहरण: एक सरल माइक्रोसर्विसेज आर्किटेक्चर को लागू करना

आइए निम्नलिखित माइक्रोसर्विसेज के साथ एक बुनियादी ई-कॉमर्स एप्लिकेशन पर विचार करें:

  1. उत्पाद सेवा: उत्पाद जानकारी प्रबंधित करती है।
  2. ऑर्डर सेवा: ऑर्डर और लेनदेन संभालती है।
  3. इन्वेंटरी सेवा: स्टॉक स्तर का प्रबंधन करता है।

चरण 1: स्प्रिंग बूट प्रोजेक्ट बनाएं
प्रत्येक सेवा के लिए, आवश्यक निर्भरताओं के साथ एक स्प्रिंग बूट प्रोजेक्ट बनाएं:



    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-client

चरण 2: कॉन्फ़िगरेशन सर्वर सेट करें
एक कॉन्फ़िग सर्वर बनाएं और इसे Git रिपॉजिटरी से पढ़ने के लिए कॉन्फ़िगर करें:

# application.yml for Config Server
spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/your-repo/config-repo

चरण 3: यूरेका के साथ सेवाएं पंजीकृत करें
प्रत्येक माइक्रोसर्विस में, यूरेका क्लाइंट सेटिंग्स कॉन्फ़िगर करें:

# application.yml for Product Service
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

चरण 4: स्प्रिंग क्लाउड गेटवे कॉन्फ़िगर करें
गेटवे एप्लिकेशन में मार्ग सेट करें:

# application.yml for Gateway
spring:
  cloud:
    gateway:
      routes:
        - id: product-service
          uri: lb://PRODUCT-SERVICE
          predicates:
            - Path=/products/**

चरण 5: हिस्ट्रिक्स के साथ सर्किट ब्रेकर जोड़ें
सेवा वर्गों में एनोटेट विधियाँ:

@HystrixCommand(fallbackMethod = "fallbackMethod")
public String getProductDetails(String productId) {
    // logic to get product details
}

public String fallbackMethod(String productId) {
    return "Product details not available";
}

चरण 6: वितरित ट्रेसिंग सक्षम करें
स्लीथ और ज़िपकिन निर्भरताएँ और कॉन्फ़िगरेशन जोड़ें:

# application.yml for Tracing
spring:
  zipkin:
    base-url: http://localhost:9411/

निष्कर्ष:

स्प्रिंग क्लाउड के साथ माइक्रोसर्विसेज आर्किटेक्चर को लागू करने से आपके अनुप्रयोगों की स्केलेबिलिटी, लचीलापन और रखरखाव बढ़ जाता है। स्प्रिंग क्लाउड का मजबूत टूलसेट माइक्रोसर्विसेज के निर्माण और प्रबंधन में शामिल जटिलताओं को सरल बनाता है, जिससे यह डेवलपर्स के लिए एक उत्कृष्ट विकल्प बन जाता है। सर्वोत्तम प्रथाओं का पालन करके और इन शक्तिशाली उपकरणों का लाभ उठाकर, आप कुशल, स्केलेबल और दोष-सहिष्णु माइक्रोसर्विसेज समाधान बना सकते हैं।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/vikhi_jayswal/microservices-architecture-with-spring-cloud-lff?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3