Junior — Middle
Puteți explica mecanismul de funcționare al pattern-ului Circuit Breaker și rolul său în asigurarea fiabilității sistemului?
sobes.tech AI
Răspuns de la AI
Modelul Circuit Breaker este utilizat pentru a crește fiabilitatea sistemelor distribuite, prevenind apelurile repetate către un serviciu care nu funcționează sau răspunde lent.
Cum funcționează:
- Închis (stare închisă): Toate solicitările trec normal.
- Deschis (stare deschisă): Dacă numărul de erori depășește un prag, Circuit Breaker se «deschide» — noile solicitări primesc imediat o eroare fără a încerca să apeleze serviciul.
- Semi-deschis (stare semi-deschisă): După un timp, Circuit Breaker permite un număr limitat de solicitări pentru a verifica dacă serviciul s-a recuperat.
Dacă solicitările reușesc, starea revine la Închis, altfel revine la Deschis.
Acest lucru previne supraîncărcarea serviciului nefuncțional și permite sistemului să se recupereze mai rapid.
Exemplu de utilizare în Go (simplificat):
// Pseudo-cod
cb := NewCircuitBreaker()
if cb.AllowRequest() {
err := callRemoteService()
if err != nil {
cb.RecordFailure()
} else {
cb.RecordSuccess()
}
} else {
// Returnează o eroare imediat, fără a apela serviciul
}
Astfel, Circuit Breaker ajută la crearea unui sistem mai rezistent la defecțiuni.