मैं अपने आरईएसटी एपीआई पर कुछ थ्रॉटल लागू करने की कोशिश कर रहा हूं। typical approach अनुरोध को अवरुद्ध करने के लिए एक निश्चित दहलीज के बाद है (403
या 429
प्रतिक्रिया के साथ)। हालांकि, मैंने one api देखा है जो को प्रतिक्रिया में देरी करता है।देरी के साथ http एपीआई कॉल
जैसे ही आप एपीआई को कॉल करते हैं, हम पिछले पांच मिनट की अवधि में प्रति सेकंड (सी/एस) की औसत कॉल देख रहे होंगे। यहाँ क्या होगा:
- से अधिक 3 सी/एस
और हम अधिक 5c/s 2 सेकंड की देरी
जोड़ सकते हैं और हम अधिक 7c/एस 4 सेकंड की देरी
जोड़ सकते हैं और हम एक 5 सेकंड की देरी
जोड़ने ग्राहक के दृष्टिकोण से, मैं इस एक त्रुटि वापस हो रही तुलना में बेहतर होने देखते हैं। सबसे बुरा यह हो सकता है कि आप धीमा हो जाएंगे।
मुझे आश्चर्य है कि यह को एप सर्वर पर नकारात्मक प्रभाव के बिना कैसे प्राप्त किया जा सकता है। यानी उन देरी को जोड़ने के लिए, सर्वर को अनुरोध को खोलने की आवश्यकता है, जिससे इसे अधिक से अधिक अनुरोध प्रोसेसर व्यस्त रखने का कारण बनता है, जिसका अर्थ है कि इसमें नए अनुरोध आने की कम क्षमता है।
इसे पूरा करने का सबसे अच्छा तरीका क्या है? (यानी यह कुछ ऐसा है जो वेब सर्वर/लोड बैलेंसर पर किया जा सकता है ताकि एप्लिकेशन सर्वर नकारात्मक रूप से प्रभावित न हो? क्या इस उद्देश्य के लिए कोई थ्रॉटलिंग परत जोड़ा जा सकता है?)
हम ' Django/Tastypie का उपयोग कर फिर से, लेकिन सवाल वास्तुकला/वैचारिक स्तर पर अधिक है।
धन्यवाद! ऐसा लगता है कि मैं जिस चीज की तलाश कर रहा था (यकीन नहीं है कि, लेकिन शायद ऐसा होगा)। – gingerlime
क्या वह 'nginx-delay-module' किसी भी तरह से Django से निर्देश लेने में सक्षम है? उदाहरण के लिए यदि दुर्व्यवहार के विचारों के माध्यम से दुरुपयोग की पहचान की जाती है, तो क्या मैं उस प्लगइन को निर्देश दे सकता हूं कि nginx की तरफ से प्रतिक्रिया में देरी हो? आदर्श रूप से मैं इसका उपयोग कर डीआरएफ के लिए कस्टम थ्रॉटल क्लास लिखना चाहता हूं। – dtgq