Sobes.tech
Middle — Middle+

Môžete vysvetliť princíp fungovania Circuit Breaker a prečo je potrebný v systémoch s vysokou záťažou?

sobes.tech AI

Odpoveď od AI

Circuit Breaker — je vzor, ktorý pomáha chrániť systém pred kaskádovými zlyhaniami pri práci s externými službami alebo komponentmi.

Princíp fungovania:

  • V normálnom stave Circuit Breaker umožňuje požiadavky na externú službu.
  • Ak počet chýb prekročí stanovený prah, Circuit Breaker sa «otvorí» a dočasne blokuje ďalšie požiadavky.
  • Po prestávke sa pokúsi obnoviť spojenie (polootvorený stav).
  • Ak sú požiadavky úspešné, Circuit Breaker sa vráti do normálneho stavu.

Prečo je to potrebné:

  • Zabráni nadmernému zaťaženiu zlyhajúcej služby.
  • Skracuje čas čakania na odpoveď, rýchlo vracia chybu.
  • Zvyšuje stabilitu a odolnosť systému.

Príklad v Go s knižnicou github.com/sony/gobreaker:

import (
    "fmt"
    "github.com/sony/gobreaker"
)

func main() {
    cb := gobreaker.NewCircuitBreaker(gobreaker.Settings{})

    result, err := cb.Execute(func() (interface{}, error) {
        // volanie na externú službu
        return "odpoveď", nil
    })

    if err != nil {
        fmt.Println("Chyba alebo otvorený Circuit Breaker:", err)
    } else {
        fmt.Println("Úspešná odpoveď:", result)
    }
}