मैं उन अलग-अलग कनेक्शनों को मैन्युअल रूप से बनाने और प्रबंधित करने की अनुशंसा नहीं करता। मुझे आपकी बहु-किरायेदार आवश्यकताओं (किरायेदारों की संख्या, डेटाबेस का आकार, अपेक्षित संख्या लेनदेन, आदि) का विवरण नहीं पता है, लेकिन मुझे लगता है कि कुछ के साथ जाना बेहतर होगा जैसे Mongoose's useDb फंक्शन . तब नेवला सभी कनेक्शन पूल विवरणों को संभाल सकता है।
अपडेट करें
पहली दिशा जो मैं खोजूंगा वह प्रत्येक किरायेदार को एक अलग नोड प्रक्रिया पर स्थापित करना है। अपने टेनेंट को अलग-अलग नोड प्रक्रियाओं में चलाने के कुछ दिलचस्प लाभ हैं। यह एक सुरक्षा दृष्टिकोण (पृथक स्मृति) और एक स्थिरता के दृष्टिकोण से (एक टैनेंट प्रक्रिया क्रैश दूसरों को प्रभावित नहीं करता) से समझ में आता है।
यह मानते हुए कि आप URL के टेनेंसी को बंद कर रहे हैं, आप वास्तविक टैनेंट सर्वर के सामने एक प्रॉक्सी सर्वर सेटअप करेंगे। इसका काम उस जानकारी के आधार पर सही प्रक्रिया के लिए यूआरएल और मार्ग को देखना होगा। यह एक बहुत ही सीधा नोड http प्रॉक्सी है स्थापित करना। प्रत्येक टैनेंट इंस्टेंस एक ही कोड बेस हो सकता है, लेकिन एक अलग कॉन्फ़िगरेशन के साथ लॉन्च किया गया है (जो उन्हें बताता है कि किस मोंगो कनेक्शन स्ट्रिंग का उपयोग करना है)।
इसका मतलब है कि आप अपने वास्तविक एप्लिकेशन को ऐसे डिज़ाइन करने में सक्षम हैं जैसे कि वह बहु-किरायेदार नहीं था। प्रत्येक प्रक्रिया केवल एक मोंगो डेटाबेस के बारे में जानती है, और कोई बहु-किरायेदार तर्क आवश्यक नहीं है। यह आपको बाद में लोड के आधार पर ट्रैफ़िक को आसानी से विभाजित करने में सक्षम बनाता है। यदि आपको प्रदर्शन कारणों से किरायेदारों को विभाजित करने की आवश्यकता है, तो आप इसे पारदर्शी रूप से प्रॉक्सी स्तर पर कर सकते हैं। DNS सभी समान रह सकते हैं, और आप केवल सर्वर को स्थानांतरित कर सकते हैं कि उदाहरण पर्दे के पीछे हैं। आप कई सर्वरों के बीच एक टैनेंट के अनुरोधों को प्रॉक्सी बैलेंस भी कर सकते हैं।