GH GambleHub

Меъёри маҳдудиятҳо ва назорати сарборӣ

TL; ДР

Схемаи боэътимод маҷмӯи маҳдудиятҳо ва квотаҳо дар якчанд сатҳҳо (канори → BFF → servis), тақсимоти одилонаи захираҳо (ба ҳар як иҷорагир/калид/масир), дросслинги мутобиқшудаи SLO ва backprescher ба ҷои танаффуси хомӯш. Сатили токен/ихроҷро барои "суръат", равзанаи лағжиш барои квотаҳои баҳисобгирӣ, маҳдудиятҳои рақобат барои амалиёти вазнин, деградатсияи динамикӣ ба таназзул ва схема барои ноустувории болооб истифода баред. Ҳама чиз зери назорат ва бо китобҳои бозӣ аст.

1) Чаро маҳдудиятҳо дар IGaming/fintech

SLO ва устуворӣ: муҳофизат аз тармаҳои бозгашт, қуллаҳои мусобиқа/чорабиниҳо, хӯшаҳои пардохт.
Адолат: як иҷорагир ё шарик тамоми буҷаро "намесозад".
Анти-сӯиистифода/ботҳо: воридшавӣ/бақайдгирӣ, спам, скрепери феҳрист.
Арзиш: нигоҳ доштани зангҳои гаронбаҳо (KYC, ҳисоботҳо, маҷмӯаҳо).
Мувофиқат/истифодаи одилона: квотаҳои расмии "истифодаи одилона" дар шартномаҳо.

2) Маҳдудияти таксономия

КатегорияКурНамунаҳои калидҳо
Суръат (суръат)RPS устувор, муҳофизати таркиш'api _ key', 'иҷорагир', 'маршрут', 'кишвар', 'BIN- apos
Квота (баҳисобгирӣ)Рӯз/моҳ барои захираҳои гарон'иҷорагир-рӯз', 'шарик-моҳ', 'ҳисобот-тип'
ҲамзамонМаҳдудияти амалиётҳои вазнини ҳамзамон'пардохт: эҷод кардан', 'содирот: csv', 'такрор'
Хароҷот бар асосиДархостҳои мураккаб/гаронбаҳо (GraphQL/ҷустуҷӯ)"мураккабӣ", андозаи посух
МутобиқшавӣРеаксия ба SLO/ниҳонӣ/хатогиҳоглобалӣ/ҳар як масир
Ingress/egressҚабул кардани webhooks/зангҳои баромад'қабулкунаки webhook', 'psp-out'

3) Алгоритмҳо ва дар куҷо татбиқ кардан

3. 1 Сатил токен (пешфарз)

Параметрҳо: 'rate' (tokens/sec), 'burst' (максимум маржа).
Бузург барои хондани API, пардохт/вазъ, BFF.
Бо сатили холӣ → 429 + 'Retry-After'.

3. 2 Сатили ихроҷ (ба ҳисоби миёна)

"Вайронкунии" кафолатноки RPS, ки барои вебхукҳо муфид аст, то коргаронро баҳо надиҳад.

3. 3 Тирезаи собит vs Тирезаи лағжанда

Собит - оддӣ, аммо "марзҳо"; Слайд - баҳисобгирии одилона дар тиреза (дақиқа/соат/рӯз).
Слайдро барои квотаҳои шартномавӣ татбиқ кунед.

3. 4 Маҳдудиятҳои якхела

Маҳдудияти вазифаҳои ҳамзамон фаъол. Беҳтарин барои содирот/ҳисоботҳо, бастаҳои KYC, коркард.
Дар ҳолати норасоӣ - 429/503 + навбат/овоздиҳӣ.

3. 5 Маҳдудияти арзиш/мураккабӣ

GraphQL/ҷустуҷӯ: "арзиш" -ро аз рӯи амиқӣ/кардиналӣ/васеъшавӣ баррасӣ кунед.
Буридан/таназзули дархостҳои "гарон", посух бо ишора.

4) Калидҳои андозагирӣ

ба ҳар як иҷорагир (иҷора, сармоя),

per-api_key/client_id (шарикон),

дар як масир (мутатсияҳои шадидтар),

як корбар/дастгоҳ/IP/ASN/geo

ҳар як BIN/кишвар (усулҳои пардохт, ҳифзи эмитентҳо ва провайдерҳо),

ҳар як усул (GET мулоим, POST/PUT сахттар).

Таркиб: калиди асосӣ + "мултипликатори хатар" (ҳисоби нав, TOR/прокси, хатари баланди пардохт).

5) Дротлинги мутобиқшудаи SLO

Вақте ки SLO дар хатар аст, дроссинги динамикиро фаъол созед:
  • Триггерҳо: 'p95 latency', '5xx *', 'навбат len тӯли', 'CPU/IO'.
  • Амалҳо: суръати пасттар/таркиш, имкон додани хориҷшавӣ, буридани хатсайрҳои "гарон", таназзули муваққатӣ (бидуни майдонҳои вазнин/агрегатҳо).
  • Бозгашт: ҳангоми ба эътидол овардани сигналҳои фосилаҳои пайдарпайи N қадам ба қадам (25 → 50 → 100%).

6) Интегратсияи меъморӣ

Дарвозаи API (канор): меъёри ибтидоӣ/квотаҳо, гео/ASN, санҷиши HMAC/JWT, 429/' Retry-After '.
BFF/Service Mesh: маҳдудиятҳои лоғар дар як масир/барои ҳар як иҷорагир, маҳдудиятҳои ҳамзамон, пайвасткунакҳо ба болооб.
Дар дохили хидмат: semaphores барои амалиёти вазнин, backprescher дар навбат, "ҳавзҳои корӣ" бо андозаи маҳдуд.
Webhooks: нуқтаи ҷудогонаи воридшавӣ бо сатил ва ихроҷи буферӣ.

7) Конфигуратсияҳо (фрагментҳо)

Услуби Kong/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 }
Фиристанда (ноҳиявӣ + outlier + сатҳи):
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()
Муҳофизи хароҷоти GraphQL (идея):
pseudo cost = sum(weight(field) cardinality(arg))
if cost > tenant. budget then reject(429,"query too expensive")

8) Сиёсатҳо барои каналҳои гуногун

ИСТИРОҲАТ

GET - мулоим, POST/PATCH/DELETE - сахттар; статусҳо/чекҳои "idempotent" -ро бозпас гирифтан мумкин аст.
Барои пардохтҳо: маҳдудиятҳои 'auth/гирифтан/баргардонидан' барои як корбар/иҷорагир/BIN/кишвар.

Диаграммаи QL

Сарпӯшҳои амиқ/мураккаб, дархостҳои доимӣ/сафедшуда, маҳдудиятҳои тахаллус.

Веб Соскет/SSE

Маҳдудияти басомад 'обуна/обуна намешавад', ҳадди аққали шумораи мавзӯъҳо, назорати андозаи рӯйдодҳо ва фиристодани навбат → ҳангоми пур кардани 'policy _ ҷудо'.

Webhooks

Сатили ихроҷ ҳангоми қабул, квотаи ҳар як ирсолкунанда, навбати мактуб, муайянкунандаи 2xx/429.

9) Фикру мулоҳизаҳои муштариён

Ҳамеша 429-и равшанро бо сарлавҳаҳо баргардонед:
  • 'Бозсозӣ: <сония>'
  • 'Маҳдудияти X-Rate/боқимонда/барқароркунӣ'
  • Барои квотаҳо - 403 бо рамзи 'квота _ аз ҳад зиёд' ва истинод ба такмилдиҳии нақша.
  • Ҳуҷҷатгузорӣ: маҳдудиятҳо дар сафҳаҳои Open-API/SDL + "Истифодаи одилона".

10) Мониторинг ва панели панелҳо

Нишондиҳандаҳо:
  • Маҳдудиятҳо: 'сатҳи. лимит. зад 'бо калидҳо/хатсайрҳо/иҷорагирон.
  • 429/503 dolya, таъхири p50/p95/p99, сатҳи хатогӣ, дарозии навбат, микросхемаҳои кушода.
  • Ҳиссаи одилона: иҷорагирони боло дар истеъмол, "детектори золим".
  • Webhooks: қабул/ретрай, сатҳи тарки, ақибмонии миёна.
Меъёрҳои SLO:
  • 429 на бештар аз 1-3% шумораи умумии RPS (бе ботҳо).
  • 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) Китобҳои бозӣ

Тӯфони Retray (тирамоҳи болооб): ба доми ҷаҳонӣ фурӯзон кунед, ақибнишинӣ кунед, схемаи кушод, ба ҷои танаффус "хатогиҳои зуд" -ро баргардонед.
Бот ҳамла/харошидан: ҳадди аққал аз ҷониби IP/ASN/geo, имкон диҳед, ки мушкилоти WAF/JS, феҳристҳо/ҷустуҷӯро маҳдуд кунед.
Қуллаи мусобиқа/чорабинӣ: пешакӣ маҳдудиятҳои хониш, "майдонҳои гаронбаҳо" -ро баланд бардошта, кэш/денормализатсияро имкон медиҳад.
Веб-китобҳои иловашуда аз PSP: сатили ихроҷи муваққатӣ, афзалияти намудҳои муҳим, васеъ кардани ҳарфҳои мурда ва бозгашт.

12) Санҷиш ва UAT

Сарборӣ: нардбони RPS, маҳтобӣ × 10 аз муқаррарӣ.
Адолат: тақлид кардани 1 иҷорагири "хасис" - на бештар аз X% буҷети ҷаҳонӣ.
Таназзул: Мутобиқсозии SLO маҳдудиятҳоро коҳиш медиҳад ва p95-ро дар долон нигоҳ медорад.
Ҳолатҳои сарҳадӣ: тағирёбии тиреза (min → chas), ларзиши соат (skew соат), миқёси Редис/sharding калид.
Шартнома: 429 ва сарлавҳаҳои Retry-After мавҷуданд, SDK дуруст бармегардад.

13) Нигоҳдорӣ барои маҳдудиятҳо

Хотира барои маҳдудиятҳои маҳаллӣ (кластерҳои хурд).
Redis/Memcached барои тақсимот (скриптҳои Луа барои атом).
Калидҳои Sharding бо hash; TTL дар зери тирезаҳо; метрикаи эҳтиётӣ барои аз даст додани кэш.
Idempotency: маҳдудкунанда набояд зангҳои такрории idempotent (баҳисобгирии калиди дархост) -ро вайрон кунад.

14) Идоракунӣ

Каталоги маҳдудият: соҳиби кист, кадом калидҳо/ҳадди ниҳоӣ.
Парчамҳои хусусият барои коммутаторҳои тез (ҳолати бӯҳронӣ).
Сиёсати версионалӣ ва раванди RFC барои тағирот ба квотаҳои шартномавӣ.
Таҷрибаҳои A/B оид ба интихоби ҳадди оптималӣ.

15) Анти-намунаҳо

Як лимити глобалӣ "барои ҳамаи API".
Танҳо тирезаҳои собит → ҷаҳиши "канор".
Маҳдудияти бе фикру мулоҳизаҳо (не 'Retry-After '/сарлавҳаҳо).
Вақти хомӯшӣ ба ҷои суръати 429/503.
Набудани саҳмияи ҳар як иҷорагир - як муштарӣ боқимондаашро мезанад.
Не муҳофизати ҷустуҷӯи GraphQL/мураккаб.
Сифрҳо дар ҳамҷоягӣ-посбон → DB/PSP "чангкашак".

16) Варақаи мини фиреб

Бо нобаёнӣ сатил аломати (сатҳи + таркиш) барои як иҷорагир + масир аст.
Квотаҳо аз рӯи пул/ҳисобот: рӯз/моҳ равзанаи тиреза.
Амалиёти вазнин: маҳдудиятҳои ҳамзамон + навбат.
GraphQL/poisk: мураккабӣ-буҷетҳо + дархостҳои пойдор.
WS/webhooks: сатил ихроҷ + backpressure.
Кризис: дротлинги динамикӣ + схема + таназзул.

Хулоса

Назорати сарборӣ як интизоми бисёрсатҳаест: алгоритмҳои дуруст (сатил/тиреза/рақобатпазирӣ), калидҳои маҳдудияти одилона, мутобиқсозии SLO ва фикру мулоҳизаҳои шаффоф. Бо маҳдуд кардани дӯзандагӣ ба дарвоза/торҳо/хидматҳо, мусаллаҳ кардани Graph ​ ​ QL/WS/webhooks бо сиёсати профил ва пайваст кардани мушоҳидаҳо бо китобҳои бозӣ, шумо рӯйдодҳои баландтарин ва нокомии одамони дигарро ба ҳолатҳои назоратшаванда табдил медиҳед - бидуни садама, пардохтҳои вайроншуда ва кашидани табдилдиҳӣ.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.