नगीनक्स और मेमकेड एक साथ कितनी अच्छी तरह काम करते हैं?


14

हमारे पास एक जावा ईई-आधारित वेब एप्लिकेशन है जो ग्लासफिश ऐप सर्वर क्लस्टर पर चल रहा है । आने वाले ट्रैफ़िक मुख्य रूप से हमारे एप्लिकेशन संसाधनों के XML- आधारित अभ्यावेदन के लिए RESTful अनुरोध होंगे, लेकिन शायद JSON- या XHTML / CSS- आधारित अभ्यावेदन के लिए 5% ट्रैफ़िक हो सकता है।

अब हम क्लस्टर में ग्लासफ़िश उदाहरणों में आने वाले ट्रैफ़िक को वितरित करने के लिए लोड-बैलेंसिंग समाधानों की जांच कर रहे हैं। हम यह भी देख रहे हैं कि मेमस्कैल्ड का उपयोग करके क्लस्टर को कैसे ऑफ़लोड किया जाए, एक इन-मेमोरी डिस्ट्रीब्यूटेड हैश मैप जिसकी कुंजियाँ REST रिसोर्स नाम (जैसे, "/ उपयोगकर्ता / बॉब", "/ ग्रुप / जैज़्लोवर्स") और जिनके मान हैं इसी XML प्रतिनिधित्व।

एक दृष्टिकोण जो आशाजनक लगता है वह यह है कि दोनों पक्षियों को एक पत्थर से मारना और हल्के, तेज nginx HTTP सर्वर / रिवर्स प्रॉक्सी का उपयोग करना है। Nginx प्रत्येक आने वाले अनुरोध को पहले से ही URI द्वारा मेमेकैड में देखने के लिए देखेगा कि क्या वहाँ पहले से मौजूद कोई एक्सपीरिया प्रतिनिधित्व नहीं है। यदि नहीं, तो नगिंक्स ग्लासफिश के एक उदाहरण पर अनुरोध भेजता है। इस छोटे राइटअप में नगनेक्स मेम्केच्ड मॉड्यूल का वर्णन किया गया है ।

इस तरह से इस्तेमाल किए गए नग्नेक्स और मेम्केड के साथ आपकी समग्र धारणा क्या है, आप उनसे कितने खुश हैं? उनके बारे में जानने के लिए आपको कौन से संसाधन सबसे मददगार लगे? यदि आपने उन्हें आज़माया है और वे आपके उद्देश्यों के अनुरूप नहीं हैं, तो क्यों नहीं, और आपने इसके बजाय क्या उपयोग किया?

नोट: यहाँ एक संबंधित प्रश्न है । इससे पहले कि मैं ServerFault के बारे में जानता था मैंने StackOverflow पर यह पूछा ।

संपादित करें: यहां अब तक के सभी उत्तर काफी मददगार रहे हैं, हालांकि कोई प्रत्यक्ष अनुभव नहीं था। यह उत्तर अंततः स्टैकऑवरफ्लो पर दिखाई दिया, और यह नगीनेक्स / मेम्केड सेटअप पर काफी तेज था।


कूल, करेंगे। हम शायद अगले महीने या इसके साथ प्रयोग करने जा रहे हैं
जिम फेर्र्स

जवाबों:


6

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

मैंने अपनी निजी वेबसाइट पर एक साधारण ऐप बेंचमार्क किया, और यह 9 अनुरोधों से एक सेकंड में 2000 से अधिक हो गया।

आप तय करते हैं कि यह कब तक चीजों को मेमोरी में रखता है, आप समय के अंत तक कर सकते हैं और फिर डेटा बदलने पर कैश सर्वर पर बस एक http पर्ज अनुरोध भेजें।



4

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

मैं सलाह देता हूं कि ऐप स्वयं लुकअप करें और कैश्ड कंटेंट परोसें और लोड बैलेंसर को अपना काम करने दें। कहा जाता है कि, जब संतुलन को लोड करने की बात आती है, तो नगनेक्स सही नहीं होता है - यह केवल एक बहुत ही मूल राउंड-रॉबिन एल्गोरिथ्म प्रदान करता है। मैं बजाय haproxy की सिफारिश करेंगे। यदि आपको SSL डिक्रिप्शन सेवाओं की आवश्यकता है, तो मेरे अनुभव में, nginx haproxy के सामने बैठकर अच्छी तरह से काम करता है।


1

मुझे लगता है कि अगर आपको लोड बैलेंसिंग, उच्च उपलब्धता और आदि जैसी चीजों की आवश्यकता होगी तो आप मृत अंत में जाएंगे।

इसके अलावा, ऐसी स्थिति पर विचार करें: जब उपयोगकर्ता को अधिकृत पृष्ठ अलग-अलग दिखता है, तो प्रत्येक उपयोगकर्ता के लिए उपलब्ध अतिरिक्त और व्यक्तिगत रूप से। URL लिंक करने की दृढ़ता और आदि के लिए समान हैं, उदाहरण के लिए, साइट जहाँ पर उपयोगकर्ता को अपना नाम दर्ज करने की आवश्यकता नहीं है / टिप्पणी या साइट के लिए कैप्चा शीर्ष पर आपका उपयोगकर्ता नाम प्रदर्शित करता है, जब आप लॉग इन होते हैं (जैसे सर्वरफ़ॉल्ट)। ऐसे मामलों में, नगनेक्स अनुपयोगी हो जाएगा, क्योंकि आप उपयोगकर्ता को अनटूथ से अलग नहीं कर सकते।

यदि आपको SSL की आवश्यकता नहीं है, तो मैं आपको वार्निश चलाने का सुझाव दूंगा। इसे HTTP एक्सेलेरेटर के रूप में डिज़ाइन किया गया है, न कि वेब सर्वर या प्रॉक्सी के रूप में। यदि आपको SSL की आवश्यकता है, तो SSL त्वरक के रूप में शीर्ष पर nginx चलाएं और सादे HTTP त्वरक के रूप में वार्निश करें, क्योंकि वार्निश SSL से निपट नहीं सकता है।

मुझे लगता है कि कैशिंग सर्वर का विकल्प विशिष्ट है और आप ऐप के गहन विश्लेषण के बिना इसके बारे में सामान्यीकृत टिप्पणी नहीं कर सकते।


1

मेरी पसंद haproxy है। बहुत छोटा और बहुत तेज रिवर्स प्रॉक्सी, लेकिन कैश प्रॉक्सी नहीं है! मैं अपने कैश सिस्टम "स्क्वीड वेब प्रॉक्सी" के लिए उपयोग करता हूं

CACHE /squid/ -> Load-balancing /Haproxy/ -> WEB I /lighttpd/
                                          -> WEB II /lighttpd/
                                          -> WEB III /lighttpd/

यह काम मेरे वेब सिस्टम के लिए एकदम सही है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.