यह वास्तव में आपकी स्केलेबिलिटी आवश्यकताओं पर निर्भर करता है, और यदि / या आपके माइक्रोसेवा इंस्टेंस को एकल परिणाम प्रदान करने के लिए सहयोग करने की आवश्यकता है। यह जानने में मदद करता है कि व्यापार-अप क्या हैं:
यह सब एक डेटाबेस में रखना
- आसान विन्यास
- आपकी सेवा के अन्य उदाहरणों के साथ कोई समन्वय या संचार की आवश्यकता नहीं है
- अपने संपूर्ण डेटासेट की खोज करना आसान है
- डेटाबेस प्रदर्शन द्वारा सीमित सिस्टम प्रदर्शन
डेटाबेस को अलग रखना
- अनुरोध के लिए पूर्ण उत्तर को माइक्रोसिस्ट सेवा के उदाहरणों में फैलाया जा सकता है
- उस मामले में आपने अनुरोध को हल करने के लिए संचार और बातचीत बढ़ाई है
- जब आप उस माइक्रो-सर्विस नोड को ढीला करते हैं, तब भी डेटा को संभालना (डेटाबेस के उठने पर भी, आप इसे तब तक प्राप्त नहीं कर सकते, जब तक कि सही कॉन्फ़िगरेशन वाला कोई नया बैकअप नहीं लिया जाता)
- कॉन्फ़िगरेशन की जटिलता बढ़ गई
आप क्या समस्या हल कर रहे हैं?
कुछ मामलों में, आप केवल पंचांग डेटा के बारे में चिंतित हैं। यदि डेटाबेस नीचे चला जाता है, तो यह कोई बड़ी बात नहीं है। उन मामलों में आपको शुरू करने के लिए डेटाबेस की भी आवश्यकता नहीं हो सकती है। बस इसे सभी याद में रखें और चीजों को धधकते हुए तेज करें। यह काम करने का सबसे आसान उपाय है।
अन्य मामलों में, आपको डेटा अखंडता की आवश्यकता होती है, लेकिन आपका डेटाबेस इसकी नोड्स की संख्या के आधार पर इसकी क्षमता का विस्तार करने में सक्षम है। इस मामले में, एक एकल डेटाबेस शायद पर्याप्त से अधिक है, और इसे स्वतंत्र रूप से प्रबंधित करना सही उत्तर है।
बीच में कई मामले हैं। उदाहरण के लिए, आपके पास ऐसे डेटाबेस हो सकते हैं जो क्षेत्रीय रूप से विशिष्ट हैं, इसलिए आपकी सेवा के प्रत्येक उदाहरण के लिए एक अलग क्षेत्र में आपके पास एक अलग डेटाबेस है। आमतौर पर शार्डिंग डेटाबेस पूरे क्षेत्र में अच्छा नहीं करते हैं, इसलिए यह डेटा को थोड़ा स्थानीय बनाने और अपने आप में समन्वय को नियंत्रित करने का एक तरीका है।
सिद्धांत और वास्तविकता
मैंने माइक्रोसर्विस के बारे में कई लेख पढ़े हैं और वे कितने मॉड्यूलर होने चाहिए। सिफारिशें पूरे उदाहरण के लिए डेटाबेस और / या फ्रंट-एंड कोड को साझा करने के लिए एक पूरी इकाई के रूप में सामने के छोर, माइक्रोसिस्ट, और डेटा स्तरीय रखने से लेकर हैं। आमतौर पर, अधिक अलगाव सबसे बड़ी मापनीयता प्रदान करता है, लेकिन यह बढ़ी हुई जटिलता की कीमत पर आता है।
यदि आपका माइक्रोसर्विस भारी गणना करता है, तो यह आवश्यक है कि उन माइक्रोसर्विसेज स्केल की संख्या को अनुमति देने के लिए - डेटाबेस साझा करना या यहां तक कि फ्रंट एंड कोड इस दृष्टिकोण को चोट या बाधा नहीं देता है।
वास्तविकता यह है कि आपकी परियोजना की विशिष्ट आवश्यकताओं को समय पर फैशन में काम पाने के लिए और आपके द्वारा मापी जा रही प्रणाली लोड को संभालने के लिए समझौता के एक अलग सेट की आवश्यकता होने वाली है (साथ ही थोड़ा और)। पूरी तरह से अलग-थलग मोर्चा, microsrervice, और डेटा टियर तीनों पर विचार करना उदात्त लक्ष्य है। आपके सिस्टम पर अधिक मांग, उस लक्ष्य के जितना करीब होने की संभावना होगी, उतनी ही अधिक होगी। हम सब नहीं हैं [insert name of highly successful web entity here]
, और वे बाहर शुरू नहीं किया, जहां वे अब हैं। कभी-कभी आपको केवल सही स्थिति से कम के साथ शुरुआत करने की आवश्यकता होती है, और इससे खुश रहें।