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:
- Zatvoreno stanje: Svi zahtevi prolaze kao obično.
- 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.
- 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
}