MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

नेवला node.js . में बहु-किरायेदारी समर्थन के लिए कनेक्शन बनाता है

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

अपडेट करें

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

यह मानते हुए कि आप URL के टेनेंसी को बंद कर रहे हैं, आप वास्तविक टैनेंट सर्वर के सामने एक प्रॉक्सी सर्वर सेटअप करेंगे। इसका काम उस जानकारी के आधार पर सही प्रक्रिया के लिए यूआरएल और मार्ग को देखना होगा। यह एक बहुत ही सीधा नोड http प्रॉक्सी है स्थापित करना। प्रत्येक टैनेंट इंस्टेंस एक ही कोड बेस हो सकता है, लेकिन एक अलग कॉन्फ़िगरेशन के साथ लॉन्च किया गया है (जो उन्हें बताता है कि किस मोंगो कनेक्शन स्ट्रिंग का उपयोग करना है)।

इसका मतलब है कि आप अपने वास्तविक एप्लिकेशन को ऐसे डिज़ाइन करने में सक्षम हैं जैसे कि वह बहु-किरायेदार नहीं था। प्रत्येक प्रक्रिया केवल एक मोंगो डेटाबेस के बारे में जानती है, और कोई बहु-किरायेदार तर्क आवश्यक नहीं है। यह आपको बाद में लोड के आधार पर ट्रैफ़िक को आसानी से विभाजित करने में सक्षम बनाता है। यदि आपको प्रदर्शन कारणों से किरायेदारों को विभाजित करने की आवश्यकता है, तो आप इसे पारदर्शी रूप से प्रॉक्सी स्तर पर कर सकते हैं। DNS सभी समान रह सकते हैं, और आप केवल सर्वर को स्थानांतरित कर सकते हैं कि उदाहरण पर्दे के पीछे हैं। आप कई सर्वरों के बीच एक टैनेंट के अनुरोधों को प्रॉक्सी बैलेंस भी कर सकते हैं।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:स्टार्टअप के दौरान सॉकेट सेट करने में विफल

  2. वर्ग पथ संसाधन में परिभाषित 'मोंगोबी' नाम से बीन बनाने में त्रुटि

  3. मेरे रेफरी दस्तावेज़ क्यों नहीं भरेंगे?

  4. नेवला अद्यतन दस्तावेज़ FindByIdAndUpdate के साथ विफल

  5. आयरन-राउटर का उपयोग करके आप एक रूट कंट्रोलर के साथ कई टेम्प्लेट कैसे प्रस्तुत करते हैं?