चूंकि पहले से ही और जवाब प्रस्तुत किया गया है, और उस पर एक उपयोगी और मान्य है, मैं अपनी स्वयं की उपयोगिता से विचलित नहीं करना चाहता हूं लेकिन वास्तव में केवल एक छोटी टिप्पणी से परे जाने के तरीके को बढ़ाने के लिए बिंदु हैं। तो इस "वृद्धि" पर विचार करें, जो उम्मीद के मुताबिक वैध है लेकिन मुख्य रूप से इसके अलावा जो पहले ही कहा जा चुका है।
सच यह है कि "वास्तव में आपका आवेदन डेटा का उपयोग कैसे करता है" पर विचार करना है, और यह भी कि "प्रभावित वातावरण" में कारकों के बारे में पता होना चाहिए और साथ ही आपके प्रस्तावित "कंटेनर पर्यावरण" जो इसे प्रभावित करते हैं।
पृष्ठभूमि का मामला
इस mongos
प्रक्रिया के साथ संवाद करने के लिए आवेदन के साथ किसी भी नेटवर्क ओवरहेड को कम करने के लिए आवेदन के साथ प्रक्रिया का पता लगाने के लिए सामान्य रूप से अभ्यास की सिफारिश पर सामान्य mongos
है। बेशक यह "अनुशंसित अभ्यास" भी है mongos
कि मामले में आवेदन कनेक्शन स्ट्रिंग में कई उदाहरणों को निर्दिष्ट करने के लिए जहां "निकटतम" नोड को किसी कारण से उपलब्ध नहीं होना चाहिए, फिर दूसरे का चयन किया जा सकता है, यद्यपि संपर्क करने के संभावित ओवरहेड के साथ दूरस्थ नोड।
"डॉकटर" मामला जिसका आप उल्लेख करते हैं, वह कुछ हद तक मनमाना लगता है। हालांकि यह सच है कि कंटेनरों के प्राथमिक लक्ष्यों में से एक (और उससे पहले, बीएसडी जेल या चुरोट की तरह कुछ) आम तौर पर "प्रक्रिया अलगाव" के कुछ स्तर को प्राप्त करने के लिए है, जब तक आप कई प्रक्रियाओं को चलाने के साथ वास्तव में कुछ भी गलत नहीं है। निहितार्थ को समझें।
इस विशेष मामले में mongos
"हल्के" होने का मतलब है और आवेदन प्रक्रिया के लिए एक "अतिरिक्त कार्य" के रूप में इसे इस तरह से चलाना है कि यह आवेदन के एक "जोड़ीदार" भाग के रूप में बहुत अधिक है। इसलिए docker की छवियाँ स्वयं में एक "initd" प्रक्रिया की तरह नहीं होती हैं, लेकिन पर्यवेक्षक (उदाहरण के लिए) जैसे प्रक्रिया नियंत्रक को कंटेनर के लिए मुख्य प्रक्रिया के रूप में चलाने के साथ वास्तव में कुछ भी गलत नहीं है , जो तब आपको प्रक्रिया नियंत्रण का एक बिंदु देता है उस कंटेनर के रूप में अच्छी तरह से। "युग्मित प्रक्रियाओं" की यह स्थिति एक उचित मामला है और यह भी एक सामान्य प्रश्न है कि इसके लिए आधिकारिक दस्तावेज है।
यदि आपने परिनियोजन के लिए उस तरह के "युग्मित" ऑपरेशन को चुना है, तो यह वास्तव में एक mongos
ही नेटवर्क कनेक्शन पर एक उदाहरण बनाए रखने के प्राथमिक बिंदु और वास्तव में "सर्वर इंस्टेंस" को एप्लिकेशन सर्वर के रूप में संबोधित करता है। इसे किसी तरह से एक ऐसे मामले के रूप में भी देखा जा सकता है, जहां "पूरे कंटेनर" को विफल होना था, तो वह नोड अपने आप में अमान्य होगा। ऐसा नहीं है कि मैं इसकी सिफारिश करूंगा, और वास्तव में आपको शायद अभी भी अन्य mongos
उदाहरणों की तलाश के लिए कनेक्शन कॉन्फ़िगर करना चाहिए, भले ही ये केवल एक नेटवर्क कनेक्शन पर पहुंच योग्य हो जो विलंबता को बढ़ाता है।
संस्करण विशिष्ट / उपयोग विशिष्ट
अब उस बिंदु को बनाया गया है, यहाँ अन्य विचार mongos
नेटवर्क विलंबता प्रयोजनों के लिए आवेदन के साथ प्रक्रिया का सह-पता लगाने के उस प्रारंभिक विचार पर वापस आता है। 2.6 से पहले के MongoDB के संस्करणों में और विशेष रूप से एकत्रीकरण ढांचे के साथ संचालन के संबंध में, फिर वहां मामला यह था कि एक बहुत अधिक नेटवर्क ट्रैफ़िक होगा और बाद में mongos
विभिन्न शार्क के डेटा से निपटने के लिए प्रक्रिया द्वारा किए गए प्रसंस्करण कार्य के बाद। । यह अब ऐसा नहीं है क्योंकि प्रसंस्करण कार्यभार का एक अच्छा सौदा अब उन रस्सियों पर "डिस्टिलिंग" से पहले "राउटर" के लिए किया जा सकता है।
दूसरा मामला आपके आवेदन उपयोग के पैटर्न को लेकर ही है। इसका मतलब यह है कि क्या प्राथमिक कार्यभार कई सारकों में "राइट्स को वितरित करना" है, या वास्तव में रीड अनुरोधों को समेकित करने में "बिखराव-इकट्ठा" दृष्टिकोण है। उन परिदृश्यों में
टेस्ट, टेस्ट और फिर टेस्ट
यहाँ अंतिम बिंदु वास्तव में आत्म व्याख्यात्मक है, और आपके प्रश्न के किसी भी समझदार प्रतिक्रिया की मूल सहमति के लिए नीचे आता है। यह MongoDB या किसी अन्य संग्रहण समाधान के लिए कोई नई बात नहीं है, लेकिन आपके वास्तविक परिनियोजन के वातावरण को "उपयोग पैटर्न" पर परीक्षण करने की आवश्यकता है जो वास्तविक वास्तविकता के करीब है जितना कि मुख्य घटकों से अपेक्षित कार्यक्षमता का कोई "यूनिट परीक्षण" नहीं है। समग्र परिणामों का परीक्षण करने की आवश्यकता है।
वास्तव में "इस तरह से कॉन्फ़िगर करें" या "इस तरह से उपयोग करें" कहने के लिए "निश्चित" बयान नहीं है जो वास्तव में आपके आवेदन प्रदर्शन और विश्वसनीयता के लिए "वास्तव में सबसे अच्छा काम करता है" परीक्षण के अलावा समझ में आता है।
बेशक "सबसे अच्छा मामला" हमेशा "भीड़" नहीं mongos
"कई" एप्लिकेशन सर्वर स्रोतों से अनुरोधों के साथ होगा। लेकिन फिर उन्हें कुछ प्राकृतिक "समता" की अनुमति देने के लिए जो "कम से कम" एक "संसाधनों का पूल" होने के लिए उपलब्ध संसाधन वर्कलोड द्वारा वितरित किया जा सकता है, और वास्तव में आदर्श रूप से कई मामलों में लेकिन एक अतिरिक्त प्रेरित करने की आवश्यकता को कम करने के लिए "नेटवर्क ट्रांसपोर्ट ओवरहेड"।
यह लक्ष्य है, लेकिन आदर्श रूप से आप अपने अंतिम परिनियोजन समाधान के लिए "सबसे उपयुक्त" समाधान पर आने के लिए विभिन्न कथित विन्यासों को "प्रयोगशाला परीक्षण" कर सकते हैं।
मैं पहले से ही उपलब्ध "मुफ्त" (बीयर के रूप में) पाठ्यक्रमों की दृढ़ता से अनुशंसा करता हूं, और इससे कोई फर्क नहीं पड़ता कि आपके ज्ञान का स्तर क्या है। मुझे लगता है कि विभिन्न पाठ्यक्रम सामग्री स्रोत अक्सर उन चीजों पर अधिक जानकारी देने के लिए "छिपे हुए रत्न" प्रदान करते हैं जिन्हें आपने माना नहीं है या अन्यथा अनदेखी की हो सकती है। M102 कक्षा के रूप में उल्लेख का निर्माण किया और द्वारा आयोजित किया जाता है एडम Commerford जिन्हें मैं यह कर सकते हैं के लिए attest MongoDB के बड़े पैमाने पर तैनाती और अन्य डेटा आर्किटेक्चर पर ज्ञान का एक उच्च स्तरीय है। कम से कम उस समय पर विचार करें जो आप पहले से ही जानते हैं कि आप क्या सोच सकते हैं पर एक नए दृष्टिकोण पर विचार करें।