Sobes.tech
Middle — Middle+

Објасните принцип рада и сврху компонента Circuit Breaker у системима поузданости.

sobes.tech АИ

Одговор од АИ

Komponent Circuit Breaker se koristi za povećanje pouzdanosti distribuiranih sistema, sprečavajući ponovne pokušaje poziva neispravne usluge i smanjujući opterećenje na sistem.

Princip rada:

  1. Zatvoreno stanje: Svi zahtevi prolaze kao obično.
  2. Otvoreno stanje: Ako broj grešaka pređe prag, Circuit Breaker se «otvara» i blokira dalje zahteve, odmah vraćajući grešku ili alternativni odgovor.
  3. Polu-otvoreno stanje: Nakon određenog vremena od otvaranja, dozvoljava ograničen broj zahteva da proveri da li je usluga oporavljena.

Ako su zahtevi uspešni, vraća se u zatvoreno stanje, u suprotnom se ponovo otvara.

Ovo sprečava preopterećenje padajuće usluge i daje vreme za oporavak, poboljšavajući ukupnu stabilnost sistema.

Primer u Go (pojednostavljeno):

// Pseudokod
cb := NewCircuitBreaker(3, time.Minute) // 3 greške - otvara se na 1 minut

if cb.AllowRequest() {
    err := callRemoteService()
    if err != nil {
        cb.RecordFailure()
    } else {
        cb.RecordSuccess()
    }
} else {
    // Odmah vraćamo grešku, usluga nije dostupna
}