GH GambleHub

Circuit Breaker жана деградация

Circuit Breaker (CB) - бул бузулган көз карандылыкка чакырыктарды үзгүлтүккө учуратуу жана колдонуучунун жана колдонуучунун колдонуучу кызматтарын коргоо үчүн коргоочу үлгү. Деградация (graceful degradation) - ресурстардын жетишсиздиги же мүчүлүштүктөр болгон учурда функционалдуулукту атайылап жөнөкөйлөтүү (мисалы, кэштелген/толук эмес маалыматтарды кайтаруу, "кымбат" көрүнүштөрдү өчүрүү).

Негизги максаты: SLO жана колдонуучунун тажрыйбасын башкарылуучу мүчүлүштүктөр менен сактоо, каскаддык түшүүлөрдүн ордуна.

1) Качан колдонуу керек

көз карандылык туруксуз: өсүш p95/p99, убакыт, туура эмес жооптор.
катуу чектери/жаза менен тышкы API.
"Оор" backends (издөө, сунуштар, отчеттор), кайда retrais бороон күчөтүү.
Бассейндердин (кошулмалардын, тректердин) түгөнүү коркунучу бар жогорку жүктөлгөн участоктор.

2) CB абалы жана өтүү

Классикалык үчилтик:

1. Closed - трафик келе жатат, ката/жашыруун метриктер эсептелет.

2. Open - чалуулар дароо четке кагылат (fail-fast) жана/же fallback которулат.

3. Half-Open - чектелген сандагы "сыноо" суроолор өчүргүч жабуу же жокпу, аныктайт.

Ачылыш триггерлери

Терезеден ката/тайм босогосу (мисалы, акыркы ≥ 50%).
Латенттүүлүк босогосу (мисалы, p95> максаттуу).
Айкалыштырылган саясат (ката ∧ тайм ашып).

Сактоо убактысы (cool-down)

Туруктуу (мисалы, 10-60 сек) же адаптивдүү (кайталанганда экспоненциалдык чоңойтуу).

3) Таймауттар, ретрайлер жана джиттер

Таймауттар ар дайым SLO агымынан кыска жана чынжыр боюнча макулдашылган (deadline propagation).
Ретраи гана idempotent бүтүмдөр үчүн; 1-2 аракет көпчүлүк учурларда жетиштүү.
Backoff + Jitter (full jitter) синхрондуу кайталоо толкундарын алдын алуу.
Hedging (запастык суроолор) - үнөмдүү жана өтө маанилүү окуу үчүн гана.

4) Bulkhead-изоляция жана "сактагычтар"

домендери жана трафик түрлөрү (VIP, арткы милдеттери, коомдук API) боюнча байланыш/Worker/кезек пулдарын бөлүү.
"кымбат" иш үчүн concurrency боюнча Caps.
Admission control: кезек толуп жатканда аткарууга чейин жеңил баш тартуу.

5) Fallback жана деградация жагдайлар

Варианттар

Кэш/стейл жооптор: 'stale-while-revalidate', L2/L3 кэшинен маалыматтарды кайтаруу.
Read-only: блок жазуу/буйрук, коопсуз окууга уруксат берүү.
Суррогат жооптор: толук эмес маалыматтар (мисалы, сунуштарсыз/аватарсыз).
Функционалдык өчүрүү: критикалык эмес виджеттерди/чиптерди убактылуу жашыруу.
Feature flags: чыгаруу жок жүрүм-тез өзгөртүү.

Эрежелер

Fallback маалыматтарды аныктоо, тез жана коопсуз болушу керек.
Так Логин/Trace/Metrics деградацияланган жол белгилөө.

6) Артыкчылыктуу жана трафик-шейпинг

VIP/акы төлөнүүчү пландар - чоң артыкчылык/квота тартыштыгы.
Rate limits жана throttling начарлап көз карандылыктын жүгүн азайтат.
Shed load: жумшак сапаттын төмөндөшү (мисалы, азыраак натыйжалар, кыскартылган сүрөттөр) турукташтырууга чейин.

7) байкоо жана сигнал

Метрика CB

абалы (closed/open/half-open) жана абалы узактыгы.
Себептерден улам мүчүлүштүктөрдүн үлүшү: CB-open, timeout, 5xx, retry-exhausted.
p95/p99 жашыруун "чейин" жана "кийин" өчүргүч.
fallback аркылуу суроо саны/үлүшү.

Трейсинг

Span аннотациялары: 'circuit = opened', 'fallback = cache', 'admission = denied'.
Чектер менен корреляция (429/RateLimit-), кезектер жана кошулмалардын октору.

Логи/аудит

Ачуу/жабуунун себеби, босоголор, көз карандылыктын идентификаторлору.

8) Келишимдер жана протокол

HTTP

Fail-fast: '503 Service Unavailable' менен 'Retry-After' (же '429' лимиттерде).
Partial content/Stail: '200 '/' 206' деградация метаданалары менен (мисалы, 'X-Degraded: true').
Кэш-саясат: 'Cache-Control: stale-if-error, stale-while-revalidate'.

gRPC

'UNAVAILABLE', 'DEADLINE _ EXCEEDED', кардар/прокси саясаты боюнча ретрациялардын семантикасы.
суроо контекстинде Deadline/timeout; чылбыр боюнча мөөнөт.

Идемпотенттүүлүк

POST-операциялар үчүн "Idempotency-Key", чек арадагы дедупликация.

9) Типтүү ишке ашыруу (псевдокод)

pseudo onRequest(req):
if circuit. isOpen(dep):
return fallbackOrFail(req)

with timeout(T):
try:
resp = call(dep, req)
circuit. recordSuccess(dep, latency=resp. latency)
return resp except TimeoutError or 5xx as e:
circuit. recordFailure(dep)
if circuit. shouldOpen(dep):
circuit. open(dep, coolDown=adaptive())
return fallbackOrFail(req)

Half-Open сыноо

pseudo onTimer():
if circuit. state(dep) == OPEN and coolDownExpired():
circuit. toHalfOpen(dep)

onRequestHalfOpen(req):
if circuit. allowTrial (dep): # e.g. 1 try: call -> success => close catch: reopen with longer coolDown else:
return fallbackOrFail(req)

10) Босоголорду орнотуу

Байкоо терезеси: N секунд/суроо-талап жылып.
Каталардын босогосу: терезеде 20-50% (профилине жараша).
Жашыруун босого: p95 ≤ максаттуу SLO (мисалы, 300-500 ms); ашыкча CB үчүн "ката" катары эске алынат.
Adaptive cool-down: 10s → 30s → 60s кайталап иштеп жатканда.

11) тестирлөө жана башаламандык-практикасы

Chaos: Enjeksiyon жашыруун/ката көз каранды, DNS бузулушу, тамчылатып баштыктар.
Game days: согуштук чөйрөдө "ачуу" өчүргүчтү ишке киргизүү, fallback текшерүү.
Canary: 1-5% трафик үчүн биринчи жолу SV/деградация саясатын киргизиңиз.
SLO-бюджет: error-budget түгөнүп чейин эксперименттерге жол.

12) Көп тенанттуулук менен интеграция

CB абалы per-dependency per-tenant (ызы-чуу ижарачылар үчүн) же глобалдуу сакталышы мүмкүн - жүктүн профилине жараша.
Fallback маалыматтар жана кэш-сегменттөө 'tenant _ id'.
Артыкчылыктар/квоталар - пландарга ылайык (VIP Starter жүрүм-турумунан жапа чекпеши керек).

13) Азык-түлүктүн алдындагы чек-тизме

  • Убакыт жана мөөнөт аркылуу жана макулдашылган.
  • Retrains чектелген, гана Emempotent иш үчүн, backoff + Jitter менен.
  • CB босогосу жүктөө сыноо маалыматтар менен негизделет.
  • Fallback жолдору бар, тез жана коопсуз; кэш саясаты аныкталган.
  • Bulkhead-изоляция: өзүнчө бассейндер/кезектер/лимиттер.
  • Metrics/Trades/Логи CB деградация жана абалын белгилөө.
  • Жооп келишимдеринин документтери (HTTP/gRPC) аталыштары/коддору менен.
  • Башаламандык-жагдайлар жана оюн-күн үзгүлтүксүз өтөт; runbook бар.

14) типтүү каталар

Эч кандай тайм-аут → retry "токтото туруу" жана каскаддык түшүүлөр.
Бирдиктүү Global CB ордуна шайлоо (EndPoint/ыкма боюнча) - кошумча баш тартуу.
Ачык fallback жок өчүргүч → деградацияланган UX ордуна "бош" экрандар.
Життерсиз ретрайлер → синхрондуу бороон-чапкындар.
Узак cool-down кыска мөөнөттүү же өтө кыска туруктуу учурда - "flip-flop" шарттары.
Жок bulkhead - жалпы көлмөлөрдү чарчоо жана "head-of-line blocking".

15) Стратегияны тез тандоо

Жогорку маанидеги окуулар: CB + кэш стейл жооптор + hedging (үнөмдүү).
Жазуулар/төлөмдөр: катуу таймауттар, минималдуу retrains, idempotency keys, жок "кир" fallback.
Тышкы API: агрессивдүү босоголор менен CB, adaptive cool-down, катуу throttling.
Микросервис толкунданып жүк: bulkheads, concurrency боюнча caps, VIP артыкчылыктуу.

Корутунду

Circuit Breaker жана башкарылуучу деградация архитектуранын "камсыздандыруусу" болуп саналат: алар башаламан баш тартууларды болжолдонгон жүрүм-турумга которушат. Так таймауттар, чектелген ретрайлер, изоляцияланган бассейндер, ойлонулган fallback жолдору жана телеметрия системаны көз карандылыктын бузулушуна туруктуу кылат жана эң жогорку жана авариялык мезгилде да SLOну кармап турат.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.