GH GambleHub

Маҳдудиятҳои меъёри тарроҳӣ

1) Чаро маҳдудияти нарх

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

Ҳадафҳои асосӣ

Устувории RPS ва муҳофизати изофабор.
Назорати "чандирӣ" (кӯмакпулӣ).
Тафовути муштариён (барои як корбар/барои як созмон/барои як калид/IP/дар як минтақа).
Модели арзиш: "нархҳо" -и гуногун барои амалиётҳои гуногун.

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

Маҳдудиятҳои RPS: дархостҳо дар як сония/дақиқа.
Квотаҳо: буҷети умумӣ дар як давра (рӯз/моҳ).
Рақобатпазирӣ: амалиёти ҳамзамон (санҷиш, кори вазнин).
Баҳои/Stripe Bytes/sec (Сарборӣ/Борфарорӣ).

Маҳдудиятҳои вазншуда: "арзиши" дархост аз рӯи мураккабӣ (масалан, мураккабии Graph

Мутобиқшавӣ: дар ҳолати аномалия мустаҳкам карда шудааст (фаъолияти шубҳанок/хатогиҳо 401/403/5xx).

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

3. 1 Ҳисобкунаки тирезаи собит

Оддӣ: ҳисобкунак дар як фосила (масалан, 100 р/дақ).
Тарафдор: Арзиши ҳадди аққал. Омӯз: "пардаи канорӣ" дар сарҳади тиреза.

Кай: панелҳои маъмурӣ, дақиқии паст, арзиши кам.

3. 2 Тирезаи лағжанда (log/counter)

Log - мӯҳлатҳои дархостҳои охиринро нигоҳ медорад, дақиқ, гарон дар хотира.
Ҳисоб: ба ҳисоби миёна ду тирезаи ҳамсоя (ғелонда), созишномаи дақиқ ва нарх.

Вақте ки: API-ҳои оммавии ҳаракати миёна, ба шумо ҳамвор бидуни математикаи мураккаб лозим аст.

3. 3 Сатил токен

Параметрҳо: меъёри 'r' (токенҳо/сония) ва иқтидори 'b' (дарида). Ҳар як дархост аломати "сӯзондан" -ро талаб мекунад.
Тарафдор: кӯмакпулии табиӣ, татбиқи оддӣ. Омӯз: Бегоҳии қатъӣ вуҷуд надорад.

Вақте: қариб ҳамеша барои RPS, агар "вулусҳо" дар дохили 'b' лозим бошанд.

3. 4 Сатил ихроҷ (қатрагӣ)

Навбат, ки аз он бо суръати муайян "мебарояд".
Тарафдор: ҳатто ҷараёни баромад. Омӯз: Таъхирҳои бештар.

Вақте: ҳамвор кардани провайдерҳои берунии "нозук".

3. 5 GCRA (Алгоритми умумии меъёри ҳуҷайра)

Модели вақти ташрифи назариявӣ (TAT):
  • 'TAT _ next = max (TAT_current, ҳоло) + 1/r', дархост қабул карда мешавад, агар 'акнун <= TAT_current + burst/r'.
  • Тарафдор: хотираи қатъӣ, дақиқ, каме (TAT-ро бо калид нигоҳ доред). Омӯз: фаҳмидан душвортар аст.

Вақте ки: ба назорати қатъӣ ва ҳамворӣ ниёз дорад, маҳдудиятҳои тақсимшуда.

3. 6 Семафорҳои рақобатӣ

Ҳисобкунаки фаъол; даромадгоҳ - агар "чиптаҳо" мавҷуд бошанд; баромадан - озод кардан.
Вақте ки: амалиётҳои дарозмуддат, риштаҳо, Web-Socket, зеркашӣ мекунанд.

4) Маҳдуд кардани модели калидӣ

Калид = маҷмӯи атрибут:
  • 'client _ id '/' api _ key '/' user _ id '/' org _ id'
  • 'IP/ASN/geo' (муҳофизати ноҳамвор)
  • 'нуқта/усул' (хатсайрҳои гарм)
  • 'миқёс/нақша/сатҳ' (монетизатсия)
  • 'idempotency _ key' (навиштани амалиёт)
  • Иерархияро истифода баред: аввал як калид барои як калид, баъд барои як созмон, баъд глобалӣ.

5) Модели арзиш

"Арзиш" 'арзиш (q)' -ро муайян кунед:
  • Диаграммаи QL: мураккабии майдон × чуқурӣ.
  • REST: андозаи ҷавоб/дархост, навъи амалиёт (хонед = 1, навиштан = 3, гузориш = 10).
  • Маҷмӯа: 'арзиш = min (n, cap)'.
  • Мо нишонаҳоро маҳдуд мекунем, на "дархостҳо": 'буҷа - = арзиш (q)'.

6) Татбиқи тақсимшуда

6. 1 Таҳхона

Дар ҷараён: ултра-зуд, аммо на маҳдудияти умумӣ (барои маҳдудиятҳои "мулоим" -и маҳаллӣ мувофиқ аст).
Редис: стандарти де-факто. INCR/EXPIRE, скриптҳои Луа (атомӣ), ZSET барои тирезаи лағжиш, калидҳо бо TTL.
Фиристанда/NGINX/Kong/Traefik: филтрҳои дарунсохт; барои периметри қулай.
Service Mesh: маҳдудиятҳои маҳаллӣ дар sidecar + ҳамоҳангсозии глобалӣ.

6. 2 Атом ва мусобиқа

Луа дар Редис: тафтиш ва афзоиш дар як қадам.
GCRA: як TAT-ро бо CAS/скрипт нигоҳ доред.
Мувофиқати соат: NTP, таймерҳои якхела.
Sharding: hash пайваста аз ҷониби калид; аз рехтани "гарм" канорагирӣ кунед.

6. 3 Тақсимоти гео

Маҳдудиятҳои маҳаллӣ дар кластерҳои минтақавӣ + глобалии болоӣ (дағалӣ).
CRDT/такрорӣ - бодиққат (таъхирҳо, истеъмоли дукарата). Ҳудуди минтақавӣ бо маржа афзалтар аст.

7) Сиёсат ва афзалият

Нақшаҳо: Free/Pro/Enterprise бо 'r', 'b', квотаҳои гуногун.
Афзалиятҳо: хатсайрҳои "гарон" арзиши камтар ё арзиши бештар мегиранд.
Рӯйхатҳо: рӯйхати иҷозат барои ҳамгироӣ, рад кардани ASN/proxy/TOP.
Афзоиш: агар шумо аз он зиёдтар бошед, маҳдудиятро кам кунед, ба исботи кор/captcha/мушкилот ворид шавед.

8) Намунаҳои конфигуратсияҳо

8. 1 Фиристанда (филтри меъёри HTTP, псевдо)

yaml rate_limit:
domain: public-api descriptors:
- key: api_key rate_limit:
unit: second requests_per_unit: 50 burst: 100
- key: api_key value: payments. write rate_limit:
unit: second requests_per_unit: 5 burst: 10

8. 2 NGINX (луа + Редис, псевдо)

nginx lua_shared_dict limits 10m;

location /api/ {
access_by_lua_block {
local key = ngx. var. arg_apikey.. ":".. ngx. var. request_method.. ":".. ngx. var. uri
-- token bucket in Redis (evalsha)
local allowed, retry_after = ratelimit_allow(key, 50, 100) -- r=50/s, b=100 if not allowed then ngx. header["Retry-After"] = retry_after return ngx. exit(429)
end
}
proxy_pass http://backend;
}

8. 3 Маҳдудиятҳои рақобатӣ (рамзи псевдо)

pseudo on_request_start(key):
if redis. incr_with_ttl("sem:" + key, ttl=60) > MAX_CONCURRENCY:
redis. decr("sem:" + key); reject(429)
on_request_finish(key):
redis. decr("sem:" + key)

8. 4 GCRA (псевдокод)

pseudo params: r tokens/sec, burst b tat = redis. get(key) or now allowed_time = tat - (b / r)
if now < allowed_time: reject(429, retry_after = allowed_time - now)
tat_next = max(tat, now) + 1/r redis. set(key, tat_next, ttl = ceil(b/r) + safety)

9) Ҳамгироӣ бо ақибнишинӣ, танаффус ва схемаи барқ

Буҷаи такрорӣ: ҳиссаи бозпардохтро то X% трафики асосӣ маҳдуд кунед.
Jitter: ҳангоми бозгашт, ҳамеша ҷиттерро илова кунед - таркишҳои синхрониро коҳиш медиҳад.
Қатъи гардиш: агар хатои баланд ('5xx', танаффус) вуҷуд дошта бошад, маҳдудиятҳоро кам кунед ё баъзе хатсайрҳоро ба "танҳо хондан" интиқол диҳед.
Хеджинг: тозаву озода; хароҷотро барои пешгирӣ кардани ду баробар зиёд кардани буҷаи худ баррасӣ кунед.

10) Мушоҳида ва идоракунӣ

Метрикӣ: 'rps _ lated', 'rps _ blocked', '429 _ rate', 'retry _ after _ avg', 'burst _ used', 'quota _ remain', 'active _ concurrency'.
Тамғакоғазҳо: аз рӯи калиди маҳдуд, минтақа, нуқтаи ниҳоӣ, нақша.
Сабтҳои қарор (интихобшуда): сабаби нокомӣ, ҳисобкунакҳои ҷорӣ, калиди TTL.
Панели панелҳо: кортҳои гармидиҳӣ аз рӯи калидҳо/нуқтаҳои ниҳоӣ, мизоҷони "гарм".
Огоҳиҳо: афзоиши 429> 2-5% дар масирҳои интиқодӣ, зуд-зуд "хастагӣ" -и квотаҳо, номутавозунии шардҳо.

11) Санҷиш ва санҷиш

Санҷишҳои шартномавии сиёсатҳо (агар ҷадвалҳо бошанд).
Боркунӣ: буришҳо (x10 аз r), доманакӯҳҳои дароз, намунаҳои "ифлос" (суст-POST, пайвастҳои дароз).
Ҳаракати бесарусомонӣ: ҷараёнҳои нобаробар, кашиши соат, Редис/тарки тарки.
A/B-фарогирӣ: маҳдудиятҳои паҳнкунии канарӣ, ҳалли сояҳо (сабти ном, аммо манъ накунед) пеш аз дохил кардан.

12) Парвандаҳо ва нозукиҳои Edge

Қуттии соат: 'Ҳозир ()' -ро аз як манбаъ (сервер) истифода баред, на аз сарлавҳаҳои муштарӣ.
Калиди Idempotency: барои навиштан - амплитсияро дар ретрас коҳиш медиҳад.
Амалиётҳои гурӯҳӣ: андозаи партия ва арзиши умумиро маҳдуд кунед.
Long-poll/Web-Socket: шумораи каналҳо/обунаҳо ва давомнокиро маҳдуд мекунад.
Оғози хунук: оғози "гарм" -и ҳисобкунакҳо/боркунӣ; вагарна пардаи бардурӯғ 429.
Дархостҳои аз ҷиҳати ҳисоббарорӣ гарон: маҳдуд кардани иҷрои мантиқи тиҷорат.
Ҳудуди TTL: TTL калидҳо равзанаи + марзи бехатариро фаро мегиранд.

13) Авҷгирии антибот

Марҳилаҳо: огоҳӣ → 429 + 'Retry-After' → мушкилот (captcha/puzzle) → блоки муваққатӣ.
Сигналҳо: изи ангуштони дастгоҳ, курсор/рафтори вақт, TOR/proxy/hosting.
Сиёсатҳо бояд барои криминалистӣ муайянкунанда ва такроршаванда бошанд.

14) Бехатарӣ ва риояи

Рад кардани пешфарз дар хатсайрҳои интиқодӣ (навиштан/маблағгузорӣ).
Аудит: қарорҳоро дар бораи маҳдудиятҳои парвандаҳои танзимкунанда ва баррасии ҳодисаҳо нигоҳ доред.
PII: калидҳои маҳдуд набояд маълумоти шахсиро дар гузоришҳо ифшо кунанд.

15) Рӯйхати санҷиши омодагии Prod

  • Калидҳои маҳдуд ва модели хароҷот муайян карда мешаванд.
  • Алгоритми интихобшуда (сатили токен/GCRA) ва нигоҳдорӣ (Редис/дарвоза).
  • Сиёсатҳо барои мизоҷони сатҳӣ + сақфҳои ҷаҳонӣ.
  • Маҳдудиятҳои рақобатӣ барои амалиёти дарозмуддат.
  • Такрори буҷа, бозгашт бо ҷиттер, ҳамгироӣ бо схемаи барқ.
  • Панели панелҳо/огоҳиҳо, сабтҳои интихобшудаи қарор.
  • Ҳолати канарӣ ва сояафкан.
  • Санҷишҳои таркишҳо, доманакӯҳҳои дароз, нокомии Редис, кӯзаи соат.
  • Ҳуҷҷатҳои муштариён: 429, рамзҳои 'Retry-After', намунаҳои пушти экспоненсиалӣ.

16) TL; ДР

Сатили токен ё GCRA-ро бо Redis/дарвоза истифода баред, калидҳои тарроҳӣ ва хароҷоти дархостро илова кунед, семафорҳои рақобатиро барои амалиёти тӯлонӣ илова кунед, бо буҷаи такрорӣ ва схема пайваст кунед, 429 назорат кунед ва "қобилияти буридан" -ро назорат кунед, маҳдудиятҳоро тавассути канария/соя паҳн кунед ва боварӣ ҳосил кунед, ки таркишҳо ва нокомии анборро санҷед

Contact

Тамос гиред

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

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

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

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

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