यदि आप न्यूनतम स्मृति चाहते हैं तो आपको पतला आज़माएं। इसमें यूनिकॉर्न या यात्री के रूप में मास्टर वर्कर नहीं है, इस प्रकार कम स्मृति का उपयोग करता है। मान लीजिए कि आपके पास एक छोटा सा ऐप है जिसे छोटे वीएम पर चलाने की आवश्यकता है, तो आप 1 पतली कर्मचारी + nginx का उपयोग कर सकते हैं। मैंने 256 एमबी वीएम पर स्वैप किए बिना थिन + एनजिनक्स + पोस्टग्रेस का उपयोग करके कई रेल 3.2 एप्स चलाए।
यूनिकॉर्न तेज़ है लेकिन इसे एक मास्टर वर्कर की आवश्यकता है। यह अच्छा है अगर आप हेरोोकू पर दौड़ना चाहते हैं, तो आप इसे 2 या 3 श्रमिकों को सेट कर सकते हैं और 512 एमबी सीमा के भीतर हो सकते हैं।
यदि आपका ऐप बहुत बड़ा है और आपके पास बहुत लंबे समय से चलने वाले अनुरोध हैं, तो मैं jRuby और Thinidad/Torquebox को देखूंगा।
मैंने कुछ ऐप्स को एमआरआई + साइडकीक से jruby + त्रिनिदाद + त्रिनिदाद_Scheduler में परिवर्तित कर दिया। मुझे ट्रिनिडाड सर्वर में 50 धागे के पूल का उपयोग करके लगभग 100-200 रिक/सेक मिलता है!
मुझे जेआरबी के बारे में क्या पसंद है यह है कि आप सब कुछ एक रेल सर्वर पर जोड़ सकते हैं। आप एक ही JavaVM पर cache_store पर EHcache, शेड्यूलिंग, पृष्ठभूमि प्रोसेसिंग और वास्तविक मल्टीथ्रेडिंग के साथ एक साथ रख सकते हैं।
आपको रेडिस, मेमकैच, रेस्क्यू या साइडकीक को अलग से चलाने की आवश्यकता नहीं है।
मैं यह नहीं कह रहा कि वे अच्छे नहीं हैं, मुझे साइडकीक और रिस्क्यू पसंद है, लेकिन आप एक प्रक्रिया पर सब कुछ जोड़कर अपनी जटिलता को कम कर सकते हैं और उच्च सहमति प्राप्त कर सकते हैं।
एक और उन्नत और एंटरप्राइज़ समाधान टोक़बॉक्स है, इसमें क्लस्टरिंग के लिए समर्थन है और यह सुपर स्केलेबल है। लेकिन मुझे अपने ऐप के साथ टॉर्कबॉक्स पर दुर्घटनाग्रस्त होने में समस्याएं आई हैं, इसलिए मैं अब त्रिनिदाद से चिपक रहा हूं।
jRuby के नुकसान? याद! एक त्रिनिदाद सर्वर 2-3 जीबी रैम तक न्यूनतम 512 एमबी का उपयोग करेगा। इसके अलावा, एकल थ्रेड सर्वर के लिए, रूबी-1.9.3 चलने वाले रेल ऐप से एक ही अनुरोध jRuby पर एक ही अनुरोध के रूप में लगभग दोगुना है।
एक और विकल्प प्यूमा है, आप प्यूमा के साथ एमआरआई पर पूर्ण बहुप्रचार प्राप्त कर सकते हैं। मैं खुद को अपने ऐप्स पर पर्याप्त स्थिर नहीं कर सका।
तो, यह सब आपकी आवश्यकताओं, स्मृति उपयोग, पूर्ण थ्रेडिंग और समरूपता पर निर्भर करता है।
यात्री के अलावा, यूनिकॉर्न, त्रिनिदाद, पुमा और टोरकबॉक्स पर एक नज़र डालें। वे अभी शीर्ष रेल सर्वर हैं।
अपनी रेल ऐप को jRuby में परिवर्तित करने और ट्रिनिडाड जैसे कई तरीकों का उपयोग करके अपने ऐप को तैनात करने के परिचय के साथ एक महान पुस्तक है। http://pragprog.com/book/jkdepj/deploying-with-jruby
टोक़बॉक्स दस्तावेज़ प्रलेखन आश्चर्यजनक रूप से अच्छा है। यह बहुत विस्तृत है और सभी Torquebox सुविधाओं का उपयोग करने के लिए वास्तव में अच्छा बताता है। http://torquebox.org/documentation/
मुझे आशा है कि मेरे अनुभव को साझा करने में मदद मिली है।
धन्यवाद, महान संसाधन। – mrbrdo