क्या एक MongoDB प्रतिकृति सेट के लिए कम से कम 2 या 3 सदस्यों की आवश्यकता होती है?


16

यहाँ प्रलेखन तीन कहते हैं: http://docs.mongodb.org/manual/tutorial/deploy-replica-set/

"एक प्रतिकृति सेट के लिए तीन अलग-अलग प्रणालियों की आवश्यकता होती है ..."

जबकि यहाँ प्रलेखन दो कहते हैं: http://docs.mongodb.org/manual/core/replication/

"अधिकांश प्रतिकृति सेटों में दो या दो से अधिक मोंगोड उदाहरण होते हैं ..."

किसी को पता है जो सही है?

जवाबों:


19

यदि आप चाहें तो आप वास्तव में एकल सदस्य "सेट" चला सकते हैं।

3 सदस्य (या अधिक विषम संख्या) वास्तव में सबसे अच्छा है, यद्यपि। यदि सेट का अधिकांश हिस्सा उपलब्ध नहीं है, तो प्रतिकृति सेट केवल तभी पढ़ा जाता है, इसलिए यदि आप किसी सदस्य को दो सदस्यीय सेट में खो देते हैं, तो शेष सदस्य केवल पढ़ने के लिए सेट होते हैं।

आप दो पूर्ण सदस्य प्लस "वोटिंग-ओनली" सदस्य (जिसे मध्यस्थ भी कहा जाता है) चला सकते हैं। यह एक प्रतिकृति सेट के लिए सबसे छोटा यथोचित सुरक्षित विकल्प है।


6
इस बात पर प्रकाश डालना चाहते हैं कि दो सदस्य एक दोष सहिष्णु प्रणाली नहीं है। @Mrurt सही है कि यदि एक सदस्य नीचे (अनियोजित) हो जाता है तो दूसरा PRIMARY नहीं हो सकता है और SECONDARY (केवल पढ़ने के लिए) पर नीचे जाएगा। दूसरे शब्दों में, यदि आपको उत्पादन में प्रतिकृति की आवश्यकता होती है, तो 3 सदस्य किसी सदस्य के असफल होने के प्रति दोष सहिष्णुता के लिए न्यूनतम हैं।
ब्रेट फिशर

3

यह मूल रूप से एक शब्दांकन मुद्दा है क्योंकि ट्यूटोरियल में आवश्यकताएँ प्रतिकृति सेट के बारे में एक सामान्य कथन नहीं हैं, बल्कि वे ट्यूटोरियल से संबंधित हैं। सामान्य रूप से एक प्रतिकृति सेट को तैनात करने की आवश्यकता 1 या अधिक है, अधिकांश में 2 या अधिक हैं, लेकिन आपके द्वारा लिंक किया गया ट्यूटोरियल विशेष रूप से 3 सदस्य सेट को तैनात करने के लिए है:

यह ट्यूटोरियल बताता है कि MongoDB के तीन मौजूदा उदाहरणों से तीन सदस्य प्रतिकृति कैसे बनाई जाए

इसलिए, ट्यूटोरियल के लिए यह आवश्यक है कि सेट में 3 सदस्य हों। फिर भी, यह दो बयानों के लिए थोड़ा भ्रमित है, इसलिए मैंने इसे थोड़ा साफ करने के लिए एक पुल अनुरोध (EDIT: पुल अनुरोध अब विलय कर दिया गया है) प्रस्तुत किया है।

आपके पास एक एकल मोंगोड नोड हो सकता है जो प्रतिकृति सेट के हिस्से के रूप में कॉन्फ़िगर किया गया है, लेकिन कड़ाई से बोल रहा है कि यह "सेट" नहीं होगा। वास्तव में, चूंकि प्रतिकृति एक स्टैंडअलोन की तुलना में अधिक संसाधनों का उपयोग करती है mongod(मूल रूप से अफीम की वजह से ) वास्तव में एक एकल सदस्य को चलाने का कोई मतलब नहीं है जब तक कि आप सेट में अन्य सदस्यों को जोड़ने से पहले एक अस्थायी उपाय के रूप में या यदि आपको किसी ओप्लोग की आवश्यकता होती है अन्य कारण (जैसे बैकअप)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.