इंटरव्यू की तैयारी के लिए सबसे महत्वपूर्ण माइक्रोसर्विसेज डिज़ाइन पैटर्न

May 06 2023
माइक्रोसर्विसेज डिज़ाइन पैटर्न कैसे काम करते हैं माइक्रोसर्विसेज डिज़ाइन पैटर्न सॉफ़्टवेयर चपलता, मापनीयता, लचीलापन और रखरखाव में सुधार करने की उनकी क्षमता के कारण तेजी से लोकप्रिय हो गए हैं। माइक्रोसर्विसेज डिज़ाइन पैटर्न सिद्धांतों का एक सेट है और सॉफ़्टवेयर सिस्टम को विकसित करने और बनाए रखने के लिए उपयोग किए जाने वाले सर्वोत्तम अभ्यास हैं जो इससे बने होते हैं छोटी, स्वतंत्र रूप से परिनियोजन योग्य सेवाएं।

माइक्रोसर्विसेज डिज़ाइन पैटर्न कैसे काम करते हैं

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

एपीआई गेटवे:

एक एपीआई गेटवे एक ऐसी सेवा है जो माइक्रोसर्विसेज के लिए फ्रंट-एंड के रूप में कार्य करती है। यह ग्राहकों से अनुरोध प्राप्त करता है और उन्हें उचित सेवा के लिए रूट करता है।

एपीआई गेटवे पैटर्न कैसे काम करता है:

एपीआई गेटवे पैटर्न ग्राहकों से अनुरोधों को रोककर और उन्हें उचित सेवा में भेजकर काम करता है। जब कोई ग्राहक सिस्टम से अनुरोध करता है, तो अनुरोध पहले एपीआई गेटवे को भेजा जाता है। एपीआई गेटवे तब जाँचता है कि क्या अनुरोध अधिकृत है और यदि ऐसा है, तो यह अनुरोध को उपयुक्त सेवा तक पहुँचाता है।

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

परिपथ वियोजक:

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

सर्किट ब्रेकर पैटर्न कैसे काम करता है:

सर्किट ब्रेकर पैटर्न एक सिस्टम घटक के स्वास्थ्य की निगरानी करके और विफलता का पता चलने पर कार्रवाई करके काम करता है। सर्किट ब्रेकर में तीन अवस्थाएँ होती हैं: बंद, खुला और आधा खुला।

  1. बंद अवस्था: बंद अवस्था में, सर्किट ब्रेकर ट्रैफ़िक को सामान्य रूप से सिस्टम घटक में प्रवाहित करने की अनुमति देता है। सर्किट ब्रेकर सिस्टम घटक के प्रतिक्रिया समय और त्रुटि दर की निगरानी करता है।
  2. ओपन स्टेट: यदि सर्किट ब्रेकर पता लगाता है कि सिस्टम घटक विफल हो रहा है, तो यह ट्रिप करता है और ओपन स्टेट में प्रवेश करता है। खुले राज्य में, सर्किट ब्रेकर सिस्टम घटक के सभी ट्रैफ़िक को रोकता है और ट्रैफ़िक को बैकअप घटक पर पुनर्निर्देशित करता है या क्लाइंट को एक त्रुटि संदेश देता है।
  3. अर्ध-खुली अवस्था: एक निश्चित समय बीत जाने के बाद, सर्किट ब्रेकर अर्ध-खुली अवस्था में प्रवेश करता है। आधे खुले राज्य में, सर्किट ब्रेकर सीमित मात्रा में ट्रैफ़िक को सिस्टम घटक में प्रवाहित करने की अनुमति देता है। यदि सिस्टम घटक यातायात के लिए सफलतापूर्वक प्रतिक्रिया करता है, तो सर्किट ब्रेकर बंद अवस्था में वापस आ जाता है। यदि सिस्टम घटक सफलतापूर्वक प्रतिक्रिया करने में विफल रहता है, तो सर्किट ब्रेकर खुले राज्य में वापस आ जाता है।

एक पारंपरिक प्रणाली में, एक एकल मॉडल होता है जो पढ़ने और लिखने दोनों कार्यों को संभालता है। यह मॉडल सिस्टम की स्थिति को बनाए रखने, कमांड को प्रोसेस करने और क्लाइंट को डेटा वापस करने के लिए जिम्मेदार है। हालाँकि, जैसे-जैसे सिस्टम जटिलता और आकार में बढ़ता है, इसे स्केल करना और बनाए रखना मुश्किल हो जाता है।

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

सीक्यूआरएस पैटर्न कैसे काम करता है:

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

जब कोई क्लाइंट सिस्टम को कोई क्वेरी भेजता है, तो इसे क्वेरी मॉडल द्वारा नियंत्रित किया जाता है। क्वेरी मॉडल सिस्टम से डेटा को पुनः प्राप्त करता है और इसे क्लाइंट को लौटाता है। क्वेरी मॉडल को पढ़ने के संचालन के लिए अनुकूलित किया जा सकता है, जो सिस्टम के प्रदर्शन में सुधार कर सकता है।

इवेंट सोर्सिंग

इवेंट सोर्सिंग सॉफ्टवेयर डिज़ाइन में उपयोग किया जाने वाला एक पैटर्न है जिसमें घटनाओं के अनुक्रम के रूप में किसी एप्लिकेशन की स्थिति को मॉडलिंग करना शामिल है। एप्लिकेशन की वर्तमान स्थिति को संग्रहीत करने के बजाय, सिस्टम घटनाओं के अनुक्रम को संग्रहीत करता है।

इवेंट सोर्सिंग कैसे काम करती है:

ईवेंट सोर्सिंग पैटर्न उन घटनाओं के अनुक्रम को संग्रहीत करके काम करता है जो किसी एप्लिकेशन की स्थिति में परिवर्तन का वर्णन करते हैं। प्रत्येक घटना को एक इवेंट स्टोर में एक अलग रिकॉर्ड के रूप में संग्रहीत किया जाता है, जो कि एक डेटाबेस है जो बड़ी संख्या में घटनाओं को संग्रहीत करने के लिए अनुकूलित है।

जब कोई उपयोगकर्ता सिस्टम के साथ इंटरैक्ट करता है, तो सिस्टम एक ईवेंट उत्पन्न करता है जो उपयोगकर्ता की कार्रवाई का वर्णन करता है। उदाहरण के लिए, यदि कोई उपयोगकर्ता ऑर्डर देता है, तो सिस्टम एक ईवेंट उत्पन्न करेगा जो ऑर्डर विवरण का वर्णन करता है। ईवेंट को ईवेंट स्टोर में संग्रहीत किया जाएगा, और सिस्टम ईवेंट के आधार पर एप्लिकेशन की स्थिति को अपडेट करेगा।

जब एप्लिकेशन की स्थिति को क्वेरी करने की आवश्यकता होती है, तो सिस्टम इवेंट स्टोर में सभी घटनाओं को पढ़ता है और एप्लिकेशन की वर्तमान स्थिति को फिर से बनाने के लिए उन्हें अनुक्रम में लागू करता है। इस प्रक्रिया को इवेंट रीप्ले के रूप में जाना जाता है।

सागा पैटर्न

सागा डिजाइन पैटर्न एक ऐसी तकनीक है जिसका उपयोग वितरित प्रणालियों में कई सेवाओं से जुड़े कई लेनदेन में स्थिरता बनाए रखने के लिए किया जाता है। इसका उपयोग कई सेवाओं में वितरित लेनदेन को प्रबंधित करने के लिए किया जाता है जो डेटा स्थिरता सुनिश्चित करता है।

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

सागा पैटर्न एक एकल लेनदेन को कई छोटे लेनदेन में तोड़कर काम करता है, जिसे "प्रतिपूर्ति लेनदेन" के रूप में भी जाना जाता है। ये क्षतिपूर्ति लेन-देन एक विशेष क्रम में निष्पादित किए जाते हैं और किसी भी त्रुटि के होने पर पिछले लेन-देन के प्रभावों को पूर्ववत करने के लिए डिज़ाइन किए गए हैं। क्षतिपूर्ति लेनदेन का क्रम यह सुनिश्चित करने के लिए महत्वपूर्ण है कि सिस्टम सुसंगत बना रहे।

निष्कर्ष

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

समग्र रूप से माइक्रोसर्विसेज डिज़ाइन पैटर्न के साथ, संगठन ऐसे सॉफ़्टवेयर सिस्टम बना सकते हैं जो अधिक लचीले, स्केलेबल और लचीले हों।

स्प्रिंग बूट अवधारणाओं के लिए लिंक देखें:

स्प्रिंग बूट के साथ स्प्रिंग सिक्योरिटी रोल आधारित एक्सेस

JWT के साथ वसंत सुरक्षा प्रमाणीकरण और प्राधिकरण

स्प्रिंग एओपी ट्यूटोरियल

स्प्रिंग बूट लॉगिंग ट्यूटोरियल

स्प्रिंग बूट में केंद्रीकृत विन्यास