डोकर और शेड्यूलिंग अमेज़न के ईसीएस की तरह & आयोजन सेवाओं के आगमन के साथ, मैं अपने नोड एपीआई तैनात करने के लिए इष्टतम तरीका निर्धारित करने के लिए कोशिश कर रहा हूँ। डॉकर और ईसीएस के साथ, मैं मास्टर प्रक्रिया और एकाधिक कार्यकर्ता प्रोसेसर बनाकर documentation में सुझाए गए एसिंक्रोनस त्रुटि की स्थिति में नोड ऐप को क्रैश करने के लिए नोड क्लस्टर लाइब्रेरी का लाभ उठाना चाहता हूं।अमेज़ॅन ईसीएस पर डॉकर में नोड एपीआई चलाने का सबसे अच्छा तरीका क्या है?
क्लस्टर दृष्टिकोण के लाभों में से एक, शान से निपटने त्रुटियों के अलावा, प्रत्येक उपलब्ध सीपीयू के लिए एक कार्यकर्ता प्रोसेसर पैदा कर रही है। लेकिन क्या यह डॉकर दुनिया में समझ में आता है? क्या यह एक एकल डॉकर कंटेनर में चल रहे कई नोड प्रक्रियाओं को समझने के लिए समझ में आता है जिसे ईसीएस पर ईसी 2 उदाहरणों के समूह में स्केल किया जा रहा था?
नोड क्लस्टर दृष्टिकोण के बिना, मैं गलतियों को गलती से संभालने की क्षमता खो देता हूं और इसलिए मुझे लगता है कि कम से कम, मुझे प्रति डॉकर कंटेनर के लिए एक मास्टर और एक कार्यकर्ता प्रक्रियाएं चलनी चाहिए। मैं अभी भी उलझन में हूं कि ईसीएस के लिए कार्य परिभाषा में कितने सीपीयू परिभाषित किए जाएंगे। ECS documentation प्रत्येक कंटेनर उदाहरण के बारे में कुछ कहता है जिसमें प्रति सीपीयू 1024 इकाइयां होती हैं; लेकिन यह ईसी 2 गणना इकाइयों की तरह ही नहीं है, है ना? और इसके साथ ही, मुझे यह अधिकार प्राप्त करने के लिए उचित मात्रा में वीसीपीयू के साथ ईसी 2 इंस्टेंस प्रकारों को चुनना होगा?
मैं समझता हूँ कि सबसे इष्टतम विन्यास को प्राप्त मेरी विशिष्ट नोड API एप्लिकेशन बेंचमार्किंग के कुछ स्तर की आवश्यकता हो सकती है, लेकिन यह जहां शुरू करने के लिए का एक बेहतर विचार है करने के लिए भयानक होगा। हो सकता है कि कुछ अध्ययन/शोध मुझे करने की ज़रूरत है? पथ या सिफारिशों पर मुझे मार्गदर्शन करने के लिए कोई संकेतक सबसे सराहना की जाएगी!
संपादित करें: मेरी विशिष्ट प्रश्न सारांश यह है:
यह मतलब है के रूप में एक डोकर कंटेनर के अंदर वर्णित here सुंदर क्रैश होने प्राप्त करने के लिए एक मास्टर/कार्यकर्ता क्लस्टर चलाने के लिए?
क्या क्लस्टर डॉक्स में वर्णित लगभग समान कोड का उपयोग करना,
require('os').cpus().length
के माध्यम से उपलब्ध CPUs को 'स्केल' करने के लिए समझदारी होगी?ईसीएस कार्य परिभाषाओं के लिए प्रलेखन में अमेज़ॅन का क्या अर्थ है, जहां यह
cpus
सेटिंग के लिए कहता है, किcontainer instance has 1024 units per CPU
? और इस सेटिंग के लिए एक अच्छा प्रारंभिक बिंदु क्या होगा?क्या एक नोड से ऊपर के आधार पर API की सेवा करने के उद्देश्य से एक ईसीएस क्लस्टर के लिए उपयोग करने के लिए उदाहरण के प्रकार के लिए एक अच्छा प्रारंभिक बिंदु हो सकता है? और उपलब्ध वीसीपीयू पिछले प्रश्नों को कैसे प्रभावित करते हैं?
प्रतिक्रिया के लिए धन्यवाद, निश्चित रूप से सहायक। तो प्रति ईसी 2 उदाहरण के लिए एक डॉकर कंटेनर? यह निश्चित रूप से उन तरीकों में से एक था जो मेरे दिमाग को पार करते थे, यह इसे आसान रखता है। मुझे यकीन नहीं था कि ईसी 2 उदाहरण पर डॉकर कंटेनर को ढेर करने का कोई फायदा हुआ है, लेकिन मुझे लगता है कि अगर मैं ऐप लेवल (कंटेनर के अंदर) पर प्रत्येक वीसीपीयू के लिए फोर्किंग कर रहा हूं, तो कंटेनर ढेर करने से ज्यादा समझ नहीं आती है। मैं यह क्यों कर रहा हूं, इस संबंध में यह वास्तव में ऐप को क्रैश होने से रोकने के बारे में नहीं है, यह शानदार तरीके से क्रैश होने के बारे में है (http अनुरोधों को सुनना बंद करें, त्रुटि रिकॉर्ड करें, और फिर प्रक्रिया समाप्त करें)। –
मास्टर प्रक्रिया समय-समय पर मजदूरों को स्मृति रिसाव के खिलाफ असफल-सुरक्षित के रूप में मारने के लिए भी उपयोगी है। –
खुशी ने मदद की।मैं असफल सुरक्षित लक्ष्य को समझता हूं, लेकिन ऐसा लगता है कि एक ऑटोरेस्टार्ट तंत्र के माध्यम से ऐप में संभावित रूप से छुपा बग एक आखिरी उपाय होना चाहिए। और निश्चित रूप से, यदि आप सभी कोर का उपयोग कर रहे हैं तो प्रति उदाहरण केवल एक कंटेनर चलाना ठीक है। –