GH GambleHub

Circuit Breaker we degradasiýa

Circuit Breaker (CB), şowsuzlygy lokallaşdyrmak we apstrim hyzmatlaryny we ulanyjyny goramak üçin pese gaçýan garaşlylyga çagyryşlary kesýän gorag patternidir. Pese gaçmak (graceful degradation) - serişdeleriň ýetmezçiligi ýa-da şowsuzlyklar (mysal üçin, kesilen/doly däl maglumatlary yzyna gaýtarmak, "gymmat" fiçleri öçürmek) ýüze çykanda funksionallygyň aňly ýönekeýleşdirilmegi.

Esasy maksat: SLO we ulanyjy tejribesini kaskad ýykylmagynyň ýerine gözegçilik edilýän şowsuzlyklaryň hasabyna saklamak.

1) Haçan ulanmaly

Garaşlylyk durnuksyz: ösüş p95/p99, wagt, nädogry jogaplar.
Gaty çäklendirmeleri/jerimeleri bolan daşarky API.
Retralar tupany güýçlendirýän "agyr" yzlar (gözleg, teklipler, hasabatlar).
Howuzlaryň (birleşmeleriň, tredleriň) tükenmek howpy bolan ýokary ýüklenen ýerler.

2) CB ýagdaýlary we geçişleri

Klassiki üçlük:

1. Closed - trafik gidýär, ýalňyşlyklaryň/gizlinligiň metrikleri hasaplanýar.

2. Açyk - jaňlar derrew ret edilýär (fil-fast) we/ýa-da fallback-e geçirilýär.

3. Half-Open - "synag" soraglarynyň çäkli sany açaryň ýapylmalydygyny ýa-da ýapylmajakdygyny kesgitleýär.

Açyş tetikleyicileri

Penjireden ýalňyşlyklaryň/wagtlaryň çäkleri (mysal üçin, iň soňky ≥ 50%).
Gizlinlik çäkleri (mysal üçin p95> maksatly).
Kombinirlenen syýasatlar (ýalňyşlyklar ∧ wagtyndan artyk).

Saklamak wagty (cool-down)

Kesgitlenen (mysal üçin, 10-60 sek) ýa-da uýgunlaşdyrylan (gaýtalananda eksponensial köpelmek).

3) Taýmautlar, retralar we jitler

Wagtlar elmydama SLO-dan has gysga we zynjyr boýunça ylalaşylýar (deadline propagation).
Diňe idempotent amallary üçin retralar; Köplenç 1-2 synanyşyk ýeterlikdir.
Backoff + jitter (full jitter) gaýtalamalaryň sinhron tolkunlarynyň öňüni alýar.
Hedging (ätiýaçlyk soraglary) - tygşytly we diňe gaty tankydy okamak üçin.

4) Bulkhead-izolýasiýa we "goragçylar"

Baglanyşyklaryň/workerleriň/nobatlaryň howuzlaryny domenler we traffigiň görnüşleri boýunça bölüň (VIP, fon meseleleri, köpçülige açyk API).
"Gymmat" amallar üçin kaps concurrency.
Admission control: nobat doldurylanda ýerine ýetirilmezinden öň aňsat boýun gaçyrma.

5) Fallback we zaýalanma ssenarileri

Wariantlar

Cache/Stail jogaplary: 'stale-while-revalidate', L2/L3 cache-den maglumatlary yzyna gaýtarmak.
Read-only :/buýruklary ýazmak, howpsuz okamaga rugsat bermek.
Surrogat jogaplar: doly däl maglumatlar (mysal üçin, teklipsiz/awatarsyz).
Funksiýany öçürmek: möhüm däl widjetleri/şekilleri wagtlaýyn gizläň.
Feature flags: Çykmazdan özüňi alyp barşyň çalt üýtgemegi.

Düzgünler

Fallback maglumatlar boýunça kesgitlenen, çalt we howpsuz bolmaly.
Pese gaçan ýoly äşgär belläň.

6) Ileri tutulýan we traffik-şeýping

VIP/tölegli meýilnamalar - ýetmezçilik ýüze çykan halatynda has uly ileri tutulýan/kwotalar.
Rate limits we throttling peselen endiklere ýükleri azaldýar.
"Shed load": durnuklaşmazdan ozal hiliň ýumşak peselmegi (mysal üçin, az netijeler, kesilen suratlar).

7) Gözegçilik we signaling

CB metrikleri

Ýagdaýy (closed/open/half-open) we dowamlylygy.
Sebäplere görä şowsuzlyklaryň paýy: CB-open, timeout, 5xx, retry-exhausted.
p95/p99 açaryň gizlinligi "öň" we "soň".
Fallback arkaly haýyşlaryň sany/paýy.

Treýsing

Span düşündirişleri: 'circuit = opened', 'fallback = cache', 'admission = denied'.
Çäklendirmeler (429/RateLimit-), nobatlar we birikmeleriň oklary bilen baglanyşyk.

Giriş/audit

Açmagyň/ýapmagyň sebäbi, bosagalar, endikleriň kesgitleýjileri.

8) Şertnamalar we teswirnama

HTTP

Fail-fast: '503 Service Unavailable' c 'Retry-After' (ýa-da '429' çäklerde).
Partial content/stail: '200 '/' 206' degradasiýa meta-maglumatlary bilen (mysal üçin 'X-Degraded: true').
Keş syýasaty: 'Cache-Control: stale-if-error, stale-while-revalidate'.

gRPC

'UNAVAILABLE', 'DEADLINE _ EXCEEDED', müşderi/proxy syýasaty boýunça retraýlaryň semantikasy.
Soragyň mazmunynda deadline/timeout; möhletiň zynjyrdan aşak ýaýramagy.

Idempotentlik

POST-amallar üçin 'idempotency-Key', serhetdäki de-duplikasiýa.

9) Nusgawy ýerine ýetiriş (ýalan resminama)

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 synagy

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) Bosagalary sazlamak

Gözegçilik penjiresi: süýşýän N sekunt/soraglar.
Ýalňyşlyklaryň çägi: penjirede 20-50% (profiline bagly).
Gizlinlik çäkleri: p95 ≤ maksatly SLO (mysal üçin 300-500 ms); artykmaçlyk CB üçin "ýalňyşlyk" hökmünde kabul edilýär.
Adaptiw cool-down: 10s → 30s → 60s gaýtalananda.

11) Synag we bulam-bujarlyk amallary

Chaos: gizlinlik/ýalňyşlyk, DNS döwülmegi, bukjalary taşlamak.
"Game days": Ok-däri ýaly gurşawda "açar" açar, fallback barlagy.
Canary: 1-5% traffik üçin ilki bilen SV/zaýalanma syýasatlaryny açyň.
SLO-býudjet: error-budget gutarýança synaglara ýol beriň.

12) Köp tenantlyk bilen integrasiýa

CB ýagdaýy per-dependency per-tenant (şowhunly kärendeçiler üçin) ýa-da global derejede - ýüküň profiline baglylykda saklanyp bilner.
Fallback maglumatlary we nagt pullary 'tenant _ id' boýunça bölüň.
Ileri tutulýan ugurlar/kwotalar - meýilnamalara laýyklykda (VIP Starter-iň özüni alyp barşyndan ejir çekmeli däldir).

13) Azyk önüminden öň çek-sanawy

  • Wagtlar we möhletler doly we utgaşdyrylan.
  • Retraýlar çäklidir, diňe idempotent amallary üçin, backoff + jitter bilen.
  • CB-iň çäk bahalary ýük synagynyň maglumatlaryna esaslanýar.
  • Fallback ýollary bar, çalt we howpsuz; Syýasatçylaryň keşi kesgitlenildi.
  • Bulkhead-izolýasiýa: aýratyn howuzlar/nobatlar/çäkler.
  • Metrikler/söwdalar/loglar CB-iň zaýalanmalaryny we ýagdaýlaryny belleýärler.
  • Gollanmalaryň/kodlaryň mysallary bilen jogap şertnamalarynyň resminamalary (HTTP/gRPC).
  • Bulam-bujarlyk ssenarileri we oýun günleri yzygiderli geçirilýär; runbook bar.

14) Adaty ýalňyşlyklar

Taýmautlar ýok → retralar we kaskadly ýykylmalar.
Saýlawyň ýerine ýeke global CB (endpoint/usul boýunça) - goşmaça şowsuzlyklar.
Fallback-siz açyk açar → peseldilen UX-iň ýerine "boş" ekranlar.
Jittersiz retraýlar → sinhron soraglar tupanlary.
Gysga möhletli şowsuzlyklarda uzak cool-down ýa-da durnukly ýagdaýlarda gaty gysga - "flip-flop".
Bulkhead ýoklugy - umumy howuzlaryň tükenmegi we "head-of-line blocking".

15) Strategiýany çalt saýlamak

Örän möhüm okalyşlar: CB + Stail-jogaplar keş + hedging (tygşytly).
Ýazgylar/tölegler: berk wagtlar, iň az retraýlar, idempotency keys, "hapa" fallback ýoklugy.
Daşarky API: Agressiw bosagaly CB, adaptasiýa cool-down, berk throttling.
Mikroservisler: bulkheads, caps on concurrency, ileri tutulýan VIP.

Netije

"Circuit Breaker" we dolandyrylýan pese gaçmak arhitekturanyň "ätiýaçlandyryşy": olar bulam-bujar ret etmegi öňünden aýdyp boljak hereketlere geçirýärler. Aç-açan wagtlar, jitter bilen çäklendirilen retralar, izolirlenen howuzlar, oýlanyşykly fallback ýollary we telemetriýa ulgamy garaşlylygyň şowsuzlyklaryna çydamly edýär we iň ýokary we adatdan daşary döwürlerde-de SLO-ny saklaýar.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.