बल्क IP लुकअप API: रेट लिमिट आर्किटेक्चर
बल्क IP लुकअप API आपको हर एड्रेस के लिए एक कॉल की जगह एक ही अनुरोध में कई एड्रेस रिज़ॉल्व करने देती है, और उसके आसपास का आर्किटेक्चर तीन बाधाओं पर टिका है: अधिकतम बैच आकार, आपको जितने अनुरोध ख़र्च करने की अनुमति है वह बजट, और एक ही सवाल दो बार पूछने से आप कितना बचते हैं। यह पोस्ट ठोस संख्याओं के लिए ipto के बल्क एंडपॉइंट का उपयोग करते हुए एक व्यावहारिक डिज़ाइन समझाता है।
बल्क IP लुकअप एंडपॉइंट क्या स्वीकार करता है
ipto का बल्क लुकअप /v1/ip/bulk पर IP स्ट्रिंग के JSON ऐरे के साथ एक POST है। अनुरोध में 100 एड्रेस तक हो सकते हैं, प्रोसेसिंग से पहले डुप्लिकेट हटा दिए जाते हैं, और रिस्पॉन्स IP एड्रेस की कुंजी वाला ऑब्जेक्ट है, जिसकी हर एंट्री एकल लुकअप नतीजे की तरह होती है, जिसमें देश, शहर, ASN, संगठन और is_vpn, is_tor, is_abuser, is_datacenter तथा bogon फ़ील्ड होते हैं। बल्क एक सशुल्क-टियर सुविधा है, जो Pro और Enterprise पर उपलब्ध है, जबकि Free टियर बिना साइनअप के प्रतिदिन 1,000 अनुरोधों पर एकल लुकअप देता है। वर्तमान अनुरोध प्रारूप के लिए API दस्तावेज़ीकरण देखें।
हिसाब-किताब की महत्वपूर्ण बात यह है कि बल्क में शुल्क प्रति आइटम लगता है। 100 एड्रेस का बैच आपके दैनिक बजट में ठीक वैसे ही 100 गिना जाता है जैसे 100 अलग लुकअप। इसलिए बैचिंग आपका कोटा नहीं बढ़ाती। यह राउंड ट्रिप, कनेक्शन सेटअप और क्लाइंट-साइड ऑर्केस्ट्रेशन बचाती है, जो अक्सर लॉग फ़ाइल या ग्राहक सूची को समृद्ध करते समय असली अड़चन होती है।
बजट के इर्द-गिर्द पाइपलाइन डिज़ाइन करें
चूँकि हर एड्रेस बजट ख़र्च करता है, इसलिए सबसे सस्ता अनुरोध वह है जो आप कभी भेजते ही नहीं। फ़िल्टर करने से शुरू करें। प्राइवेट और आरक्षित एड्रेस का कभी कोई सार्थक जियोलोकेशन नहीं होगा, और आप उन्हें स्थानीय रूप से हटा सकते हैं या कुछ भी ख़र्च होने से पहले bogon IP चेकर से वर्गीकृत कर सकते हैं। बचे हुए सेट को डीडुप करें, क्योंकि प्रोडक्शन लॉग में थोड़े-से बार-बार आने वाले आगंतुक, क्रॉलर और NAT गेटवे हावी रहते हैं। बैचर के सामने एक हैश सेट आम तौर पर सबसे अधिक लाभ देने वाला बदलाव है।
फिर एड्रेस की कुंजी वाला कैश जोड़ें, ऐसे टाइम टू लिव के साथ जो इस बात से मेल खाए कि आपके काम का डेटा कितनी तेज़ी से बदलता है। देश और ASN मैपिंग लंबे समय तक स्थिर रहते हैं, इसलिए दिनों की अवधि उचित है। प्रतिष्ठा फ़्लैग तेज़ी से बदलते हैं, क्योंकि ipto की थ्रेट फ़ीड हर 6 घंटे में और IP तथा ASN डेटासेट रोज़ रिफ़्रेश होते हैं, इसलिए किसी फ़ैसले को कुछ घंटों से ज़्यादा कैश करना बहुत कुछ बचाए बिना पुरानापन जोड़ता है। हो सके तो प्रति फ़ील्ड अलग TTL रखें, या पूरे नतीजे को छोटे TTL पर कैश करें।
- bogon और स्पष्ट रूप से अमान्य इनपुट को स्थानीय रूप से फ़िल्टर करें।
- जॉब के भीतर और कैश के विरुद्ध डीडुप करें।
- बचे हुए एड्रेस को अधिकतम 100 के समूहों में बाँटें।
- चंक सब एक साथ भेजने के बजाय सीमित समवर्तिता के साथ भेजें।
- नतीजे कैश और गंतव्य स्टोर में, एड्रेस की कुंजी से लिखें।
समवर्तिता, बैकऑफ़ और दैनिक विंडो
दैनिक बजट एक स्थिर विंडो है, इसलिए जिस विफलता के लिए डिज़ाइन करना है वह जॉब के बीच में उसका समाप्त हो जाना है। शुरू करने से पहले लागत का अनुमान लगाएँ: अद्वितीय, गैर-bogon एड्रेस की संख्या ही जॉब द्वारा ख़र्च किए जाने वाले अनुरोधों की संख्या है। यदि वह आज बचे हुए बजट से अधिक है, तो जॉब को कई विंडो में बाँटें, सबसे मूल्यवान एड्रेस को पहले रखें, या केवल सबसे जोखिम भरे एड्रेस के लिए एकल लुकअप पर लौटें। प्रगति को सहेजें ताकि दोबारा शुरू हुआ जॉब शुरुआत से नहीं, आख़िरी पूरे हुए चंक से आगे बढ़े।
मध्यम समवर्तिता रखें। समानांतर चंक की मुट्ठी भर संख्या लगभग हमेशा काफ़ी होती है, क्योंकि हर चंक में पहले से 100 लुकअप होते हैं, और असीमित फ़ैन-आउट केवल विफलताओं को समझना कठिन बनाता है। क्षणिक त्रुटि या बजट से अधिक रिस्पॉन्स पर, एक्सपोनेंशियल बैकऑफ़ और जिटर के साथ पुनः प्रयास करें, और समाप्त बजट को रुककर बाद में दोबारा शुरू करने का संकेत मानें, तंग लूप में दोबारा कोशिश करने का नहीं। हर राइट को आइडेम्पोटेंट बनाएँ ताकि दोबारा भेजा गया चंक पंक्तियाँ दोहरी न डाल दे।
बल्क और एकल लुकअप के बीच चुनाव
साइन-अप फ़ॉर्म या चेकआउट जैसे रीयल-टाइम रास्तों के लिए प्रति इवेंट एक एकल लुकअप का उपयोग करें। लेटेंसी कम है, कैश दोहराव सोख लेता है, और बजट केवल उन्हीं एड्रेस पर ख़र्च होता है जो वास्तव में आते हैं। बल्क ऑफ़लाइन कामों के लिए है: कोई तालिका बैकफ़िल करना, एक दिन के लॉग को स्कोर करना, या अनुमति-सूची का ऑडिट करना। यदि आपका लक्ष्य कच्चे डेटा के समृद्धीकरण की जगह जोखिम स्कोरिंग है, तो फ़्रॉड स्कोर चेकर IP, ईमेल, फ़ोन और User-Agent संकेतों को एक 0 से 100 के स्कोर में मिलाता है, जो कई अलग कॉल की जगह ले सकता है। प्रदाताओं की मुफ़्त-टियर सीमाओं की लंबी तुलना के लिए हमारी मुफ़्त-टियर रेट तुलना देखें।
अंत में, अपना उपयोग ख़ुद लॉग करें। प्रति जॉब ख़र्च हुए अनुरोध, कैश हिट दर और bogon या डुप्लिकेट के रूप में हटाए गए एड्रेस का हिस्सा ट्रैक करें। ये तीन संख्याएँ बजट अलार्म से बहुत पहले बता देती हैं कि आर्किटेक्चर काम कर रहा है या नहीं।
बड़ा बैच स्क्रिप्ट करने से पहले, मुट्ठी भर एड्रेस हाथ से आज़माएँ: ASN लुकअप दिखाता है कि आपके लॉग में बार-बार दिखने वाली रेंज किस नेटवर्क की है, जिससे अक्सर हज़ारों एकल लुकअप की जगह एक ही निर्णय से पूरे नेटवर्क को संभाला जा सकता है।