मैं सर्वरहीन और MongoDB के साथ स्केलिंग मुद्दों को कैसे दूर कर सकता हूं?
मैं सर्वर रहित और MongoDB से परिचित हूं और जानना चाहूंगा कि क्या दो दुनिया को जोड़ने के लिए कोई स्केलेबल तरीके हैं। जहां तक मुझे पता है, आप एक रिगफुल तरीके से MongoDB के साथ बातचीत नहीं कर सकते। इसके बजाय, एक कनेक्शन खोलना जिसे पुन: उपयोग किया जाना है।
मान लीजिए कि मैं सर्वर रहित एपीआई के एक भाग के रूप में AWS लैम्ब्डा का उपयोग कर रहा हूं। जब लैम्ब्डा ठंडा होता है, तो आपको MongoDB के लिए एक नया कनेक्शन खोलना होगा और जबकि लैम्ब्डा अभी भी गर्म है, कनेक्शन खुला रहता है। यह समाधान ठीक है, लेकिन जब आपके पास एपीआई पर ट्रैफ़िक का उछाल होगा तो आप MongoDB द्वारा लगाए गए कनेक्शन की सीमा से टकराएंगे।
क्या लेम्बडा जैसी स्टेटलेस दुनिया में इस कनेक्शन की सीमा को पार करने का कोई तरीका है?
जवाब
लैम्ब्डा फ़ंक्शन स्टेटलेस और एसिंक्रोनस हैं, और डेटाबेस कनेक्शन पूल का उपयोग करके, आप इसमें एक स्टेट जोड़ रहे हैं, और उद्देश्य को हरा देंगे।
यदि आप कनेक्शन पूलिंग चाहते हैं, तो EC2 पर अपना सर्वर चलाना AWS पर सबसे उपयुक्त विकल्प है।
हालाँकि, यदि आप अभी भी लैम्ब्डा के साथ कनेक्शन पूलिंग चाहते हैं, तो आप सामान्य रूप से उपयोग कर एक पूल बना सकते हैं MongoClient.connect(uri, { poolSize: 10 })
और डमी ट्रिगर बनाकर क्लाउड-वॉच इवेंट का उपयोग करके अपने लैम्ब्डा को गर्म रख सकते हैं।
आप निश्चित रूप से कुछ प्रदर्शन में सुधार देखेंगे।
इसके बारे में सोचने का तरीका: आप लैंसडा को ट्रिगर करने के लिए काइनिस का उपयोग कर सकते हैं, यह समवर्ती गणना की संख्या को शार्प काउंट तक सीमित कर देगा, उदाहरण के लिए, 8 समवर्ती के लिए 8 शार्द।
इस तरह, आप अपने कनेक्शन को खुला रख सकते हैं, और स्केलिंग मुद्दों से बचने के लिए अपने खुले कनेक्शन की सीमा अर्जित कर सकते हैं।
इस प्रकार की चीज़ (एक एकल मंगलाचरण के लिए, चाहे वह कनेक्शन नया हो या फिर से उपयोग किया गया हो) आप कुछ निगरानी उपकरणों द्वारा निगरानी कर सकते हैं जो आपको समय के साथ स्केलिंग स्थिति बनाए रखने में मदद करेंगे, इसके लिए MongoDB और Kinesis पुनरावृत्ति आयु का प्रबंधन करने में मदद करेगा। जैसे कि:
- AWS एक्स-रे
- एडब्ल्यूएस क्लाउडवॉच मेट्रिक्स
- Datadog
- Lumigo
एक प्रकटीकरण के रूप में, मैं ल्यूमिगो नामक कंपनी के लिए काम करता हूं, हमारे पास एक वितरित निगरानी उपकरण है जो आपको अपने उत्पादन स्केलिंग मुद्दों को ट्रैक करने में मदद कर सकता है