यह microservice वास्तुकला श्रृंखला का हिस्सा 4 है, जिसमें हम लोड संतुलन के लिए रिबन का उपयोग करने पर ध्यान केंद्रित करेंगे।
यह लेख स्प्रिंग बूट माइक्रोसर्विसेज श्रृंखला का हिस्सा है:
लेखों की इस श्रृंखला में, आप माइक्रोसर्विसेज की अवधारणा से परिचित हो जाएंगे और सीखेंगे कि स्प्रिंग बूट और स्प्रिंग क्लाउड का उपयोग करके माइक्रोसेवा कैसे बनाएं।
यह मार्गदर्शिका आपको माइक्रोसॉर्स्क आर्किटेक्चर की मूल बातें सीखने में मदद करेगी। हम स्प्रिंग बूट के साथ बुनियादी माइक्रोसर्विस कार्यान्वयन को भी देखना शुरू करेंगे।
हम ग्राहक पक्ष पर लोड को संतुलित करने के लिए यूरेका (यूरेका नामकरण सर्वर) और रिबन नाम सर्वर का उपयोग करके एक जोड़ी माइक्रोसर्विस बनाएंगे और उन्हें एक-दूसरे के साथ संचार करेंगे।
इस ट्यूटोरियल में, हम इस कहानी को जारी रखेंगे कि स्प्रिंग बूट माइक्रोसिस्टवर्क प्रोजेक्ट में रिबन को लोड बैलेंसर के रूप में कैसे उपयोग किया जाए।
आप सीखेंगे:
- लोड संतुलन के लिए क्या आवश्यक है?
- रिबन क्या है
- रिबन को स्प्रिंग बूट प्रोजेक्ट में कैसे जोड़ा जाए?
- लोड संतुलन के लिए रिबन को कैसे सक्षम और कॉन्फ़िगर करें?
माइक्रोसोर्स्ट अवलोकन
पिछले दो भागों में, हमने माइक्रोसेर्विस बनाए और उनके बीच एक संबंध स्थापित किया।
GET to http://localhost:8100/currency-converter-feign/from/EUR/to/INR/quantity/10000
{ id: 10002, from: "EUR", to: "INR", conversionMultiple: 75, quantity: 10000, totalCalculatedAmount: 750000, port: 8000, }
जब हम उपरोक्त सेवा लॉन्च करते हैं, तो आप देखेंगे कि अनुरोध विदेशी मुद्रा सेवा में भी भेजा गया है। यह कमाल है!
हमने दो माइक्रोसर्विसेज बनाए और उनके बीच एक संबंध स्थापित किया।

हालाँकि, हमने CCS घटक, CurrencyExchangeServiceProxy में FS के लिए URL को हार्डकोड किया है।
@FeignClient(name="forex-service" url="localhost:8000") public interface CurrencyExchangeServiceProxy { @GetMapping("/currency-exchange/from/{from}/to/{to}") public CurrencyConversionBean retrieveExchangeValue (@PathVariable("from") String from, @PathVariable("to") String to); }
इसका मतलब यह है कि विदेशी मुद्रा सेवा के नए उदाहरण शुरू करते समय, हमारे पास उन पर भार वितरित करने का कोई तरीका नहीं है।
इस भाग में, आइए अब क्लाइंट-साइड लोड बैलेंसिंग को रिबन का उपयोग करके सक्षम करें।
आपको आवश्यकता होगी:
- Maven 3.0+ - आपका बिल्ड टूल
- आपका पसंदीदा आई.डी.ई. हम ग्रहण का उपयोग करते हैं।
- JDK 1.8+
कोड नमूने के साथ तैयार मावेन परियोजना
Github रिपॉजिटरी में सभी कोड उदाहरण हैं।
रिबन चालू करें
Pom.xml में रिबन निर्भरता जोड़ें:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency>
CurrencyExchangeServiceProxy में रिबन सक्षम करें:
@FeignClient(name="forex-service") @RibbonClient(name="forex-service") public interface CurrencyExchangeServiceProxy {
अनुप्रयोग में उदाहरणों को कॉन्फ़िगर करें।
forex-service.ribbon.listOfServers=localhost:8000,localhost:8001
8001 को विदेशी मुद्रा सेवा लॉन्च करें
पिछले चरण में, हमने रिबन को उदाहरणों में लोड वितरित करने के लिए कॉन्फ़िगर किया है। हालाँकि, हमारे पास 8001 पर चलने वाली एक भी विदेशी मुद्रा सेवा का उदाहरण नहीं है।
हम इसे लॉन्च कॉन्फ़िगरेशन को कॉन्फ़िगर करके लॉन्च कर सकते हैं, जैसा कि नीचे दिए गए आंकड़े में दिखाया गया है:

क्रिया में रिबन
वर्तमान में हमारे पास निम्नलिखित सेवाएं हैं:
- 8100 पर माइक्रोसॉर्फ़ मुद्रा परिवर्तक (सीसीएस)
- 8000 और 8001 पर विदेशी मुद्रा माइक्रोसर्विस के दो उदाहरण
अब आप देखेंगे कि CCS के अनुरोध को रिबन के माध्यम से विदेशी मुद्रा microservice के दो उदाहरणों के बीच वितरित किया जाएगा।
अनुरोध 1
GET to http://localhost:8100/currency-converter-feign/from/EUR/to/INR/quantity/10000
निवेदन २
GET to http://localhost:8100/currency-converter-feign/from/EUR/to/INR/quantity/10000
आप देख सकते हैं कि दो उत्तरों में पोर्ट नंबर अलग-अलग हैं।
सारांश
हमने दो माइक्रोसर्विसेज बनाए और उनके बीच एक संबंध स्थापित किया।

हम विदेशी मुद्रा सेवा के दो उदाहरणों के बीच लोड को वितरित करने के लिए रिबन का उपयोग करते हैं।
हालाँकि, हम CCS में दोनों FS उदाहरणों के URL को हार्डकोड करते हैं। इसका मतलब है कि हर बार एफएस का एक नया उदाहरण दिखाई देता है, हमें सीसीएस कॉन्फ़िगरेशन को बदलने की आवश्यकता होगी। यह शांत नहीं है।
अगले भाग में, हम इस समस्या को हल करने के लिए यूरेका नामकरण सर्वर का उपयोग करेंगे।