2011-02-08 6 views
7

यदि मोंगो में केवल दो नोड्स के साथ एक प्रतिकृति सेट स्थापित किया गया है, तो एक आर्बिटरयह सुनिश्चित करने के लिए कि एक नए मास्टर के लिए वोट में हमेशा बहुमत है। मध्यस्थ कभी भी गुरु नहीं बनता है, यह पूरी तरह से गर्दन और गर्दन के चुनाव में कास्टिंग वोट प्रदान करने के लिए है।क्या क्लाइंट कनेक्शन कॉन्फ़िगरेशन में एक मोंगोडीबी आर्बिटर शामिल होना चाहिए?

जब एक ग्राहक एक MongoDB क्लस्टर के लिए (मेरे मामले जावा में), हम कनेक्शन विन्यास में specify all the nodes of the cluster करने वाले हैं जोड़ने:

List addrs = new ArrayList(); 
addrs.add(new ServerAddress("localhost" , 27017)); 
addrs.add(new ServerAddress("localhost" , 27018)); 

Mongo mongo = new Mongo(addrs); 

मध्यस्थ कनेक्शन विन्यास में शामिल किया जाना चाहिए? मुझे नहीं लगता है कि होगा के रूप में वे:

डेटा की एक प्रतिलिपि नहीं है और प्राथमिक नोड बन कभी नहीं होगा (या यहां तक ​​कि एक पठनीय माध्यमिक)

(here से लिया)

... लेकिन मैं बस दोबारा जांचना चाहता था!

उत्तर

6

नहीं, आपको कनेक्शन में मध्यस्थों को शामिल करने की आवश्यकता नहीं है।

आखिरकार, जैसा कि आपको संदेह था, आपके कोड में उन लोगों में से एक से कनेक्ट करने का प्रयास करने में थोड़ा सा बिंदु होगा क्योंकि वहां कोई डेटा नहीं है। ऑटो-फ़ेलओवर की सहायता के लिए वे सिर्फ स्कैन के पीछे अपनी सामग्री करते हैं।

आपको अपने कनेक्शन कॉन्फ़िगरेशन (यहां तक ​​कि मास्टर भी नहीं) में सभी सर्वरों को निर्दिष्ट करने की भी आवश्यकता नहीं है - जब तक आप जिन सर्वरों का उल्लेख करते हैं उनमें से एक प्रतिक्रिया देता है, यह वहां से मास्टर पा सकता है। हालांकि आईएमएचओ, जितना अधिक आप बेहतर नाम देते हैं, बस उनमें से कई संख्याएं नीचे जाती हैं।

1

सूची केवल एक बीज सूची है। प्रतिकृति सेट के वास्तविक सदस्यों को एक से कनेक्ट करने के बाद निर्धारित किया जाता है। आप केवल 27017 पर एक निर्दिष्ट कर सकते हैं (लेकिन अगर वह नीचे था तो यह बुरा होगा)।

संबंधित मुद्दे