"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > थ्रॉटलएक्स के साथ दर सीमित करना

थ्रॉटलएक्स के साथ दर सीमित करना

2024-11-02 को प्रकाशित
ब्राउज़ करें:503

Rate Limiting with ThrottleX

त्वरित सम्पक:

  • गिटहब रेपो
  • विकी दस्तावेज़ीकरण

परिचय:

नमस्ते, ओपन-सोर्स उत्साही और गो प्रशंसक! मैं अपने ओपन-सोर्स प्रोजेक्ट, थ्रॉटलएक्स, जो एपीआई के लिए एक वितरित दर सीमक है, के त्वरित अवलोकन के साथ वापस आ गया हूं। मैं अभी भी इस ओपन-सोर्स दुनिया में बिल्कुल नया हूं, इसलिए आपकी सलाह का हमेशा स्वागत है! ?

थ्रोटलएक्स को आपके सिस्टम को सुचारू और निष्पक्ष रखते हुए एपीआई ट्रैफ़िक को प्रभावी ढंग से प्रबंधित करने में मदद करने के लिए बनाया गया है। चाहे वह दुरुपयोग को रोकना हो या उच्च भार को संभालना हो, थ्रॉटलएक्स ने आपको कवर किया है। आइए कुछ दर सीमित करने वाले एल्गोरिदम का पता लगाएं जो थ्रॉटलएक्स को शक्तिशाली बनाते हैं। ?

दर सीमित एल्गोरिदम की व्याख्या ?‍?

आपके एपीआई ट्रैफ़िक को प्रबंधित करने में मदद करने के लिए थ्रॉटलएक्स तीन मुख्य एल्गोरिदम के साथ आता है:

1. निश्चित विंडो दर सीमा

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

उपयोग केस: पूर्वानुमानित ट्रैफ़िक पैटर्न के लिए बढ़िया है, लेकिन "सीमा मुद्दे" से सावधान रहें, जहां विंडो के अंत के पास कई अनुरोध इच्छित दर सीमा को बायपास कर सकते हैं।

2. स्लाइडिंग विंडो रेट लिमिटिंग

यह कैसे काम करता है: यह एक चलती औसत की तरह है - प्रत्येक विंडो के अंत में पूरी तरह से रीसेट होने के बजाय, दर सीमा समय के साथ "स्लाइड" होती है, जिससे सहज नियंत्रण मिलता है।

केस का उपयोग करें: स्पाइक्स से बचने और अनुरोधों को अधिक समान रूप से वितरित करने के लिए बिल्कुल सही।

3. टोकन बकेट रेट लिमिटिंग

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

उपयोग केस: यदि टोकन सहेजे जाते हैं तो अचानक ट्रैफ़िक बढ़ने की अनुमति देने के लिए आदर्श।

उदाहरण उपयोग ?️

यहां फिक्स्ड विंडो रेट लिमिटर का उपयोग करने का एक सरल उदाहरण दिया गया है:

package main

import (
    "github.com/neelp03/throttlex/ratelimiter"
    "github.com/neelp03/throttlex/store"
    "time"
    "fmt"
)

func main() {
    // Initialize an in-memory store and a Fixed Window rate limiter
    memStore := store.NewMemoryStore()
    limiter, err := ratelimiter.NewFixedWindowLimiter(memStore, 10, time.Minute)
    if err != nil {
        fmt.Println("Failed to create limiter:", err)
        return
    }

    // Simulate API requests
    key := "user1"
    for i := 0; i 



अपेक्षित आउटपुट:

Request 1 allowed
Request 2 allowed
... (up to 10 allowed)
Request 11 blocked
Request 12 blocked
... (up to 15 blocked)

थ्रॉटलएक्स के लिए आगे क्या है? ?

  • प्राथमिकता दर सीमा: विभिन्न उपयोगकर्ताओं के लिए अलग-अलग प्राथमिकताएं।
  • गतिशील दर सीमा: सर्वर लोड के आधार पर सीमाएं समायोजित करें।
  • समवर्ती सीमा: एक साथ अनुरोध प्रबंधित करें।

इन भविष्य के अपडेट के लिए बने रहें जो थ्रॉटलएक्स को और भी अधिक शक्तिशाली बना देंगे!

आप कैसे योगदान दे सकते हैं?

मैं अभी भी ओपन सोर्स में नया हूं, और मुझे खुशी होगी कि आप इस यात्रा का हिस्सा बनें! योगदान का हमेशा स्वागत है - चाहे वह बग फिक्स हो, सुझाव हो, या दस्तावेज़ीकरण सुधार हो।

रेपो देखें: थ्रॉटलएक्स गिटहब रेपो और यदि आपको यह उपयोगी लगता है तो इसे एक स्टार दें। मुद्दों को खोलने या अनुरोधों को खींचने के लिए स्वतंत्र महसूस करें - हर तरह से मदद मिलती है!

अंतिम विचार

थ्रॉटलएक्स एपीआई दर को अधिक सुलभ और कुशल बनाने का मेरा प्रयास है। आइए इसे मज़ेदार बनाएं (और दर्द कम करें)! ?

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/neelp03/rate-limiting-with-throttlex-26df?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3