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

जावा स्प्रिंग बूट के साथ स्केलेबल माइक्रोसर्विसेज का निर्माण: सर्वोत्तम अभ्यास और तकनीक भाग -1

2024-08-18 को प्रकाशित
ब्राउज़ करें:236

मोनोलिथ वास्तुकला

  • यदि हम एक ही प्रोजेक्ट में सभी कार्यात्मकताएं विकसित करते हैं तो इसे मोनोलिथ आर्किटेक्चर आधारित एप्लिकेशन कहा जाता है।

  • हम सर्वर पर तैनात करने के लिए अपने एप्लिकेशन को जार/वॉर के रूप में पैकेज करेंगे।

  • चूंकि मोनोलिथ एप्लिकेशन में सभी कार्यात्मकताएं शामिल हैं, यह मोटा जार/युद्ध बन जाएगा।

फायदे
1) विकसित करना और प्रबंधन करना आसान।
2) सब कुछ एक ही स्थान पर उपलब्ध है।
3) कॉन्फ़िगरेशन केवल एक बार आवश्यक है।

अहित-लाभ
1) बनाए रखना मुश्किल
2) विफलता का एकल बिंदु
3) यदि हम कोई परिवर्तन करते हैं तो संपूर्ण प्रोजेक्ट को पुनः तैनात और परीक्षण किया जाता है।
4) डेवलपर को संपूर्ण मॉड्यूल का ज्ञान नहीं हो सकता है, इसलिए समस्या को ठीक करना शुरू करना कठिन है।
5) यदि किसी मॉड्यूल पर बहुत अधिक लोड हो जाता है तो हमें संपूर्ण एप्लिकेशन के एकाधिक उदाहरण बनाने की आवश्यकता होती है, जिससे अधिक जगह लगती है क्योंकि प्रत्येक मॉड्यूल एक-दूसरे के साथ मजबूती से जुड़ा होता है।

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

मोनोलिथिक की समस्याओं को दूर करने के लिए, माइक्रोसर्विसेज आर्किटेक्चर बाजार में आया

माइक्रोसर्विसेज आर्किटेक्चर

  • माइक्रोसर्विसेज कोई प्रोग्रामिंग भाषा या फ्रेमवर्क या एपीआई नहीं है। माइक्रोसर्विसेज एक वास्तुशिल्प डिजाइन पैटर्न है।

  • माइक्रोसर्विसेज लूज कपलिंग के साथ एप्लिकेशन कार्यक्षमता विकसित करने का सुझाव दे रही है।

  • माइक्रोसर्विसेज आर्किटेक्चर में हम एक ही प्रोजेक्ट में सभी कार्यात्मकताएं विकसित नहीं करते हैं। हम परियोजना की कार्यप्रणाली को कई REST API में विभाजित करेंगे।

  • माइक्रोसर्विसेज केवल जावा से संबंधित नहीं है। कोई भी प्रोग्रामिंग भाषा विशिष्ट प्रोजेक्ट माइक्रोसर्विसेज आर्किटेक्चर का उपयोग कर सकता है।

माइक्रोसर्विसेज एक दृष्टिकोण है जिसका उपयोग करके हम छोटी छोटी सेवाएं विकसित करते हैं, प्रत्येक सेवा अपने स्वयं के कंटेनर/प्रोसेस/सर्वर पर चलती है, सेवाएं हल्की और स्वतंत्र रूप से तैनात करने योग्य होनी चाहिए। यह तेजी से विकास, तैनाती और स्केलेबिलिटी की अनुमति देता है।

जैसा कि आप देख सकते हैं कि मोनोलिथ एप्लिकेशन के कर्मचारी मॉड्यूल, ग्राहक मॉड्यूल, एड्रेस मॉड्यूल और कोर्स मॉड्यूल अब छोटी छोटी सेवा में परिवर्तित हो गए हैं, इसलिए यहां वे कर्मचारी सेवा, ग्राहक सेवा, एड्रेस सेवा और कोर्स सेवा की तरह हैं। और मोनोलिथ एप्लिकेशन में एकल डेटाबेस का उपयोग होता है लेकिन माइक्रोसर्विस एप्लिकेशन में प्रत्येक सेवा का अपना डेटाबेस होता है। और वे अब एक-दूसरे पर निर्भर हैं। और प्रत्येक सेवा एक दूसरे के साथ संचार कर रही है, बाकी कॉल फेंक दें।

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

फायदे

  • प्रौद्योगिकी स्वतंत्रता (हम पायथन, गो आदि जैसी कई तकनीकों के साथ बैकएंड एपीआई विकसित कर सकते हैं)
  • डेटाबेस स्वतंत्रता.

  • प्रत्येक सेवा एक-दूसरे से स्वतंत्र है (लूज़ली कपलिंग) इसलिए हम प्रत्येक सेवा को स्वतंत्र रूप से तैनात कर सकते हैं।

  • यदि किसी सेवा में कोई परिवर्तन किया जाता है, तो सभी सेवाओं को तैनात करने की कोई आवश्यकता नहीं है, केवल एक ही सेवा को भी तैनात किया जाता है।

  • डेवलप को एक सेवा पर काम करने के लिए संपूर्ण एप्लिकेशन के ज्ञान की आवश्यकता नहीं होती है।

  • एकल माइक्रोसर्विस की विफलता पूरे एप्लिकेशन को प्रभावित नहीं करती है, जिससे समग्र लचीलापन बढ़ जाता है।

  • छोटे कोडबेस और चिंताओं का पृथक्करण रखरखाव और डिबगिंग को अधिक प्रबंधनीय बनाता है।

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

  • प्रत्येक सेवा का परीक्षण अलग-अलग तरीके से किया जा सकता है।

नुकसान

  • यदि हम एक सेवा कॉन्फ़िगरेशन में परिवर्तन करना चाहते हैं तो हमें प्रत्येक सेवा कॉन्फ़िगरेशन पर परिवर्तन करने की आवश्यकता है, उदाहरण के लिए एक सामान्य संपत्ति है जो मेरे सभी प्रोजेक्ट्स में प्रत्येक एप्लिकेशन.प्रॉपर्टी फ़ाइल में मौजूद है।
company.name=tier3Hub

इसलिए यदि हम कंपनी का नाम बदलना चाहते हैं तो सभी सेवाओं में हमें नाम बदलना होगा।

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

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

माइक्रोसर्विसेज के लिए जावा क्यों

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

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

स्प्रिंग-बूट की मदद से तेज विकास, कम कॉन्फ़िगरेशन, प्रोडक्शन रेडी एप्लिकेशन और स्टेटर प्रोजेक्ट के लिए सुविधाएं प्रदान की जाती हैं

और स्प्रिंग फ्रेमवर्क के तहत एक प्रोजेक्ट है जिसे स्प्रिंग क्लाउड कहा जाता है जो रेडी मेड सपोर्ट माइक्रोसर्विसेज प्रदान करता है, स्प्रिंग क्लाउड माइक्रोसर्विसेज के सामान्य पैटर्न को जल्दी से विकसित करने के लिए कुछ सामान्य उपकरण और तकनीक प्रदान करता है।

स्प्रिंग क्लाउड सामान्य उपयोग के मामलों के लिए अच्छा आउट-ऑफ-बॉक्स अनुभव और दूसरों को कवर करने के लिए एक्स्टेंसिबिलिटी तंत्र प्रदान करने पर केंद्रित है

  • वितरित/संस्करणित कॉन्फ़िगरेशन
  • सेवा पंजीकरण और खोज
  • रूटिंग
  • सेवा-से-सेवा कॉल
  • भार का संतुलन
  • परिपथ तोड़ने वाले
  • वितरित संदेश
  • अल्पकालिक माइक्रोसर्विसेज (कार्य)
  • उपभोक्ता-संचालित और निर्माता-संचालित अनुबंध परीक्षण।

माइक्रोसर्विसेज आर्किटेक्चर

हमारे पास माइक्रोसर्विसेज के लिए कोई निश्चित आर्किटेक्चर नहीं है, देव अपनी परियोजना की आवश्यकता के अनुसार माइक्रोसर्विसेज आर्किटेक्चर को अनुकूलित कर रहे हैं, अधिकांश परियोजनाएं माइक्रोसर्विसेज आर्किटेक्चर में नीचे दिए गए घटकों का उपयोग करेंगी।

1) सेवा रजिस्ट्री (यूरेका सर्वर)

2) सेवाएं (आरईएसटी एपीआई)

3) इंटरसर्विस कम्युनिकेशन (फेगिनक्लाइंट)

4) एपीआई गेटवे

5) एडमिन सर्वर

6) ज़िपकिन

निष्कर्ष

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

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

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

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

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/ayushstwt/building-scaleable-microservices-with-java-spring-boot-best-practices-and-techniques-part-1-1da3?1 यदि कोई उल्लंघन है , कृपया स्टडी_गोलंग @163.कॉमडिलीट से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3