;
मैं, मैं और अधिक हार्डवेयर इसे फेंक की तरह Anon कहा। मुझे लगता है कि जाने के लिए रास्ता अधिक हार्डवेयर है। बहुत सारे ग्राहक या ट्रैफ़िक होने के कारण आमतौर पर एक अच्छी समस्या है।
हालांकि, अगर आपको बिल्कुल ग्राहकों को थ्रॉटल करना होगा, तो कुछ विकल्प हैं।
सबसे अधिक स्केलेबल समाधान जिन्हें मैंने एक वितरित कैशिंग सिस्टम, जैसे मेमकैच किया गया है, और गणना रखने के लिए पूर्णांक का उपयोग करके घूमते देखा है।
उस दर को चित्रित करें जिस पर आपका सिस्टम यातायात को संभाल सकता है। या तो समग्र, या प्रति ग्राहक। फिर उस दर का प्रतिनिधित्व करने वाले memcached में एक गिनती डाल दें। प्रत्येक बार जब आप अनुरोध प्राप्त करते हैं, तो मूल्य कम करें। समय-समय पर यातायात को बढ़ाने के लिए काउंटर को बढ़ाएं।
उदाहरण के लिए, यदि आप 10 अनुरोध/सेकेंड को संभाल सकते हैं, तो अधिकतम 5 तक, प्रत्येक 5 सेकंड में 50 की गिनती रखें। इस तरह आप इसे हर समय refilling नहीं कर रहे हैं, लेकिन आप भी संभाल सकते हैं खिड़की तक सीमित फटने का थोड़ा सा। एक अच्छी ताज़ा दर खोजने के लिए आपको प्रयोग करने की आवश्यकता होगी। यदि आप इस तरह से प्रतिबंधित करने की आवश्यकता है तो इस काउंटर की कुंजी या तो वैश्विक कुंजी हो सकती है, या उपयोगकर्ता आईडी पर आधारित हो सकती है।
इस प्रणाली के बारे में अच्छी बात यह है कि यह पूरे समूह में काम करता है और काउंटर को फिर से भरने वाली तंत्र आपके वर्तमान सर्वरों में से एक में नहीं होने की आवश्यकता है। आप इसके लिए एक अलग प्रक्रिया समर्पित कर सकते हैं। लोड किए गए सर्वरों को केवल इसे जांचने और इसे कम करने की आवश्यकता होती है।
यह सब कहा जा रहा है, मैं पहले अन्य विकल्पों की जांच करता हूं। अपने ग्राहकों को थ्रॉटल करना आम तौर पर उन्हें परेशान करने का एक अच्छा तरीका है। शायद सबसे अच्छा विचार नहीं है। :)
इसमें अधिक हार्डवेयर फेंको। –
जब तक सभी अनुरोध मान्य नहीं होते हैं, तब तक मैं एनन से सहमत हूं, उस पर अधिक हार्डवेयर फेंक दूंगा (सबसे आसान) या अपने जावा सर्वलेट को अनुकूलित करें। यदि अनुरोध स्पैम हैं तो आप iptables या अपाचे स्तर ब्लॉक – Nick
जैसे कुछ का उपयोग करके उन्हें निम्न परत पर अवरुद्ध कर सकते हैं। उनका प्रश्न मान्य है। हार्डवेयर को संभालने से हमेशा अधिक अनुरोध हो सकते हैं। सर्वर को अनुरोधों को सीमित करने के लिए एक तरीका चाहिए और अब अत्यधिक भार के दौरान सिस्टम को नीचे लाएं। –