GH GambleHub

दर सीमा और लोड नियंत्रण

टीएल; डीआर

एक विश्वसनीय सर्किट कई स्तरों (edge→BFF→servis), निष्पक्ष संसाधन आवंटन (प्रति-किरायेदार/कुंजी/मार्ग), एसएलओ-अनुकूली थ्रॉटलिंग और मूक समय के बजाय बैकप्रेशर पर सीमाओं और कोटा का एक संयोजन है। "गति" के लिए टोकन/लीकी बाल्टी का उपयोग करें, लेखांकन कोटा के लिए फिसलने वाली खिड़की, भारी संचालन के लिए प्रतिस्पर्धी सीमा, गिरावट पर गतिशील थ्रॉटलिंग और अपस्ट्रीम को नाजुक बनाने के लिए सर्किट-ब्रेकर। सब कुछ अवलोकन के तहत और प्लेबुक के साथ है।

1) iGaming/fintech में सीमा क्यों

एसएलओ और स्थिरता: रिट्रे हिमस्खलन, टूर्नामेंट/इवेंट चोटियों, भुगतान स्पाइक्स के खिलाफ सुरक्षा।

निष्पक्षता: एक किरायेदार या साथी पूरे बजट को "चूसता" नहीं है।

एंटी-एब्यूज/बॉट्स: लॉगिन/पंजीकरण, स्पैम, निर्देशिका स्क्रैपिंग।

लागत: महंगी कॉल (केवाईसी, रिपोर्ट, एकत्रीकरण) का नियंत्रण।

अनुपालन/उचित उपयोग: अनुबंध में औपचारिक "उचित उपयोग" कोटा।

2) टैक्सोनॉमी को सीमित करें

श्रेणीक्यूरकुंजियों के उदाहरण
दर (गति)स्थिर आरपीएस, फट सुरक्षा'api _ key', 'किरायेदार', 'मार्ग', 'देश', 'BINP'
कोटा (लेखा)महंगे संसाधनों के लिए दिन/महीना'किरायेदार-दिन', 'पार्टनर-महीना', 'रिपोर्ट-टाइप'
समवर्तीसमवर्ती भारी संचालन सीमित करें'payout: बनाओ', 'निर्यात: csv', 'पुनरावृत्ति'
लागत आधारितजटिल/महंगे प्रश्न (ग्राफ़क्यूएल/खोज)"जटिलता", प्रतिक्रिया आकार
अनुकूलीएसएलओ/विलंबता/त्रुटियों पर प्रतिक्रियावैश्विक/प्रति-मार
इंग्रेस/एग्रेसवेबहुक/आउटगोइंग कॉल प्राप्त करें'वेबहुक-रिसीवर', 'psp-outbound'

3) एल्गोरिदम और जहां आवेदन करना है

3. 1 टोकन बाल्टी (डिफ़ॉल्ट)

पैरामीटर: 'दर' (टोकन/सेकंड), 'बर्स्ट' (अधिकतम मार्जिन)।

एपीआई पढ़ ने, भुगतान/स्थिति, बीएफएफ के लिए महान।

एक खाली बाल्टी के साथ → 429 + 'रेट्री-आफ्टर'।

3. 2 लीकी बाल्टी (औसत)

आरपीएस के "विध्वंस" की गारंटी, वेबहुक के लिए उपयोगी ताकि श्रमिकों को स्कोर न करना पड़े।

3. 3 फिक्स्ड विंडो बनाम स्लाइडिंग विंडो

निश्चित - सरल, लेकिन "सीमाएँ"; विंडो में स्लाइडिंग - मेला लेखांकन (न्यूनतम/घंटा/दिन)।

संविदात्मक कोटा के लिए स्लाइडिंग लागू करें।

3. 4 समवर्ती सीमाएँ

एक साथ सक्रिय कार्यों की सीमा। निर्यात/रिपोर्ट, केवाईसी पैकेज, पुनर्संसाधन के लिए आदर्श।

कमी के मामले में - 429/503 + कतार/मतदान।

3. 5 लागत/जटिलता लिमिटर

GraphQL/खोज: गहराई/कार्डिनैलिटी/एक्सटेंशन द्वारा "लागत" पर विचार करें।

"महंगे" अनुरोधों की क्लिपिंग/गिरावट, एक संकेत के साथ प्रतिक्रिया।

4) आयामी कुंजियाँ

प्रति किरायेदार (बहु-पट्टा, इक्विटी),

per-api_key/client_id (भागीदार),

प्रति-मार्ग (अधिक गंभीर महत्वपूर्ण उत्

प्रति-उपयोगकर्ता/उपकरण/आईपी/एएसएन/जियो

प्रति-बिन/देश (भुगतान के तरीके, जारीकर्ताओं और प्रदाताओं की सुरक्षा),

प्रति-विधि (GET नरम, POST/PUT सख्त)।

रचना: मुख्य कुंजी + "जोखिम गुणक" (नया खाता, TOR/प्रॉक्सी, उच्च चार्जबैक जोखिम)।

5) एसएलओ-अनुकूली थ्रॉटलिंग

जब एसएलओ खतरे में हो तो गतिशील थ्रॉटलिंग सक्षम करें:
  • ट्रिगर्स: 'p95 ', ' ', 'कतार', 'सीपीयू/आईओ संतृप्ति'।
  • क्रियाएं: कम दर/फटना, बाहरी-अस्वीकृति को सक्षम करना, "महंगा" मार्ग काटना, अस्थायी अपमान (भारी क्षेत्रों/एकत्रीकरण के बिना)।
  • वापसी: लगातार अंतराल के संकेतों को सामान्य करते समय स्टेपवाइज (%)।

6) वास्तुकला एकीकरण

एपीआई गेटवे (एज): प्राथमिक दर/कोटा, भू/एएसएन, एचएमएसी/जेडब्ल्यूटी सत्यापन, 429/' रेट्री-आफ्टर '।

BFF/Service Mesh: पतली प्रति-मार्ग/प्रति-किरायेदार सीमा, समवर्ती-सीमा, सर्किट-ब्रेकर ऊपर की ओर।

सेवा के अंदर: भारी संचालन के लिए सेमाफोर, कतारों में एक बैकप्रेशर, एक बाध्य आकार के साथ "काम पूल"।

वेबहूक: लीक बाल्टी और रिट्रे बफर के साथ एक अलग इंग्रेस एंडपॉइंट।

7) कॉन्फ़िगरेशन (टुकड़े)

कोंग/NGINX-शैली (दर + फट):
yaml plugins:
- name: rate-limiting config:
policy: local minute: 600    # 10 rps limit_by: consumer fault_tolerant: true
- name: response-ratelimiting config:
limits:
heavy: { minute: 60 }
दूत (सर्किट + बाहरी + दर):
yaml circuit_breakers:
thresholds: { max_connections: 1000, max_requests: 800 }
outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s http_filters:
- name: envoy. filters. http. local_ratelimit typed_config:
token_bucket: { max_tokens: 100, tokens_per_fill: 100, fill_interval: 1s }
filter_enabled: { default_value: 100% }
filter_enforced: { default_value: 100% }
समवर्ती-सीमा (छद्म):
pseudo sema = Semaphore(MAX_ACTIVE_EXPORTS_PER_TENANT)
if! sema. tryAcquire(timeout=100ms) then return 429 with retry_after=rand(1..5)s process()
sema. release()
ग्राफक्यूएल लागत गार्ड (विचार):
pseudo cost = sum(weight(field) cardinality(arg))
if cost > tenant. budget then reject(429,"query too expensive")

8) विभिन्न चैनलों के लिए नीतियां

REST

GET - नरम, POST/PATCH/DELETE - सख्त; "आइडेम्पोटेंट" स्टेटस/चेक को वापस लिया जा सकता है।

भुगतान के लिए: 'ऑथ/कैप्चर/रिफंड' प्रति-उपयोगकर्ता/किरायेदार/बिन/देश पर सीमा।

ग्राफ़क्यूएल

गहराई/जटिलता कैप, स्थिर/सफेदी वाले प्रश्न, उपनाम पर सीमा।

WebSocket/SSE

आवृत्ति सीमा 'सदस्यता/सदस्यता', विषयों की संख्या पर टोपी, घटनाओं के आकार का नियंत्रण और भेजें-कतार - जब 'policy _ disconnect' ओवरफ्लो।

वेबहूक

रिसेप्शन पर लीकी बाल्टी, प्रति-प्रेषक कोटा, मृत-अक्षर कतार, नियतात्मक 2xx/429।

9) ग्राहक प्रतिक्रिया

हमेशा शीर्षकों के साथ एक स्पष्ट 429 वापस करें:
  • 'पुनः प्रयास करें: <सेकंड>'
  • 'एक्स-रेटलिमिट-लिमिट/शेष/रीसेट'
  • कोटा के लिए - कोड 'कोटा _ पार' के साथ 403 और योजना उन्नयन के लिए एक लिंक।
  • प्रलेखन: OpenAPI/SDL + "फेयर यूज" पृष्ठों में सीमाएँ।

10) निगरानी और डैशबोर्ड

मेट्रिक्स:
  • हिट्स सीमा: 'दर। सीमा। कुंजी/राउट/किरायेदारों द्वारा हिट।
  • 429/503 доля, विलंबता p50/p95/p99, त्रुटि दर, कतार की लंबाई, खुले सर्किट।
  • फेयर-शेयर: खपत में शीर्ष किरायेदार, "धमकाने वाला डिटेक्टर।"
  • वेबहूक: रिसेप्शन/रेट्राई, ड्रॉप-रेट, मिडिल लैग।
एसएलओ बेंचमार्क:
  • 429 कुल आरपीएस (बॉट के बिना) के 1-3% से अधिक नहीं।
  • p95 सीमित योजक ≤ 5-10 एमएस प्रति किनारे।
  • गिरावट वसूली समय ≤ 10 मिनट।
SQL उदाहरण (कुंजी स्लाइस):
sql
SELECT ts::date d, tenant, route,
SUM(hits) AS limit_hits,
SUM(total) AS total_calls,
SUM(hits)::decimal/NULLIF(SUM(total),0) AS hit_rate
FROM ratelimit_stats
GROUP BY 1,2,3
ORDER BY d DESC, hit_rate DESC;

11) हादसा प्लेबुक

रिट्रे तूफान (अपस्ट्रीम फॉल): वैश्विक थ्रॉटलिंग चालू करें, बैकऑफ़, ओपन सर्किट-ब्रेकर, टाइमआउट के बजाय "त्वरित गलतियाँ" वापस करें।

बॉट अटैक/स्क्रैपिंग: आईपी/एएसएन/जियो द्वारा हार्ड कैप, डब्ल्यूएएफ/जेएस चुनौती सक्षम करें, निर्देशिका/खोज को प्रतिबंधित करें।

टूर्नामेंट/इवेंट पीक: पहले से पढ़ ने की सीमा बढ़ाएं, कम "महंगे क्षेत्र", कैश/डेनोर्मलाइजेशन को सक्षम करें।

PSP से जोड़े गए वेबहुक: अस्थायी लीक बाल्टी, महत्वपूर्ण प्रकारों की प्राथमिकता, मृत-पत्र और रिट्रे का विस्तार।

12) परीक्षण और यूएटी

लोड: आरपीएस सीढ़ी, मोती × 10 सामान्य।

निष्पक्षता: 1 "लालची" किरायेदार का अनुकरण - वैश्विक बजट के एक्स% से अधिक नहीं।

गिरावट: SLO अनुकूलन सीमाओं को कम करता है और गलियारे में p95 रखता है।

सीमा मामले: विंडो परिवर्तन (min→chas), घड़ी शेक (घड़ीतिरछा), रेडिस स्केलिंग/कुंजी शार्डिंग।

अनुबंध: 429 और रीट्री-आफ्टर हेडर मौजूद हैं, एसडीके सही ढंग से बैक-ऑफ है।

13) सीमा के लिए भंडारण

स्थानीय सीमाओं (छोटे समूहों) के लिए इन-मेमोरी।

वितरित के लिए रेडिस/मेमकैच (परमाणु के लिए लुआ स्क्रिप्ट)।

हैश द्वारा शार्डिंग कुंजी; विंडो के नीचे टीटीएल; कैश हानि के लिए बैकअप मीट्रिक।

पहचान: लिमिटर को दोहराए गए कॉल (अनुरोध कुंजी द्वारा लेखांकन) को नहीं तोड़ ना चाहिए।

14) शासन

कैटलॉग को सीमित करता है: कौन मालिक है, कौन सी कुंजी/सीमा/राशन।

फास्ट स्विच (संकट मोड) के लिए फीचर-फ्लैग।

संविदात्मक कोटा में परिवर्तन के लिए नीतियां और आरएफसी प्रक्रिया।

इष्टतम थ्रेसहोल्ड के चयन पर ए/बी प्रयोग।

15) एंटी-पैटर्न

वैश्विक एक सीमा "सभी एपीआई के लिए"।

केवल निश्चित खिड़कियां → "किनारे" कूदती हैं।

फीडबैक के बिना सीमा (कोई 'Retry-After '/headers नहीं).

उपवास 429/503 के बजाय मूक समय।

प्रति-किरायेदार निष्पक्ष-शेयर की कमी - एक ग्राहक बाकी का गला घोंट देता है।

कोई ग्राफ़क्यूएल/जटिलता खोज सुरक्षा नहीं।

समवर्ती-गार्ड में शून्य DB/PSP "वैक्यूम क्लीनर"।

16) पसंद की मिनी धोखा शीट

डिफ़ॉल्ट टोकन बाल्टी (दर + फट) प्रति-किरायेदार + मार्ग है।

पैसे/रिपोर्ट द्वारा कोटा: फिसलने वाली खिड़की दिन/महीना।

भारी संचालन: समवर्ती-सीमा + कतार।

GraphQL/поиск: जटिलता-बजट + प्रश्न बने रहे।

डब्ल्यूएस/वेबहूक: लीक बाल्टी + बैकप्रेशर।

Кризис: गतिशील थ्रॉटलिंग + सर्किट-ब्रेकर + अपमानित।

सारांश

लोड नियंत्रण एक बहु-स्तरीय अनुशासन है: सही एल्गोरिदम (बाल्टी/विंडो/प्रतिस्पर्धा), उचित सीमा कुंजी, एसएलओ अनुकूलन और पारदर्शी प्रतिक्रिया। प्रवेश द्वार/जाल/सेवाओं में सीमाएं सिलने से, प्रोफ़ाइल नीतियों के साथ ग्राफ़क्यूएल/डब्ल्यूएस/वेबहूक को हटाकर और प्लेबुक के साथ अवलोकन को जोड़ कर, आप चरम घटनाओं और अन्य लोगों की विफलताओं को नियंत करते हैं।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।