Sobes.tech
Junior — Middle

El tudná magyarázni a Circuit Breaker mintázat működési mechanizmusát és szerepét a rendszer megbízhatóságának biztosításában?

sobes.tech MI

Válasz az MI-től

A Circuit Breaker minta a megbízhatóság növelésére szolgál elosztott rendszerekben, megakadályozva, hogy ismételten hívjuk a nem működő vagy lassan válaszoló szolgáltatást.

Hogyan működik:

  1. Zárt (zárt állapot): Minden kérés normál módon átmegy.
  2. Nyitott (nyitott állapot): Ha a hibák száma meghalad egy küszöbértéket, a Circuit Breaker «kinyílik» — az új kérések azonnal hibát kapnak anélkül, hogy megpróbálnák hívni a szolgáltatást.
  3. Fél-nyitott (fél-nyitott állapot): Egy idő után a Circuit Breaker korlátozott számú kérés engedélyez, hogy ellenőrizze, a szolgáltatás helyreállt-e.

Ha a kérések sikeresek, az állapot visszatér Zártra, különben újra Nyitott lesz.

Ez megakadályozza a nem működő szolgáltatás túlterhelését, és gyorsabban lehetővé teszi a rendszer helyreállását.

Egyszerűsített példa Go nyelven:

// Pseudo-kód
cb := NewCircuitBreaker()

if cb.AllowRequest() {
    err := callRemoteService()
    if err != nil {
        cb.RecordFailure()
    } else {
        cb.RecordSuccess()
    }
} else {
    // Azonnal hibát adunk vissza, anélkül, hogy hívnánk a szolgáltatást
}

Így a Circuit Breaker segít a rendszer ellenállóbbá tételében a hibákkal szemben.