Sobes.tech
Middle — Middle+

Kas saaksite selgitada Circuit Breaker tööpõhimõtet ja miks see on vajalik kõrge koormusega süsteemides?

sobes.tech AI

Vastus AI-lt

Circuit Breaker — on muster, mis aitab kaitsta süsteemi kaskaadsete rikete eest, töötades väliste teenuste või komponentidega.

Tööpõhimõte:

  • Normaalsetes tingimustes laseb Circuit Breaker läbi päringud välisteenusele.
  • Kui vigade arv ületab määratud künnise, avatakse Circuit Breaker ja blokeerib edasised päringud teatud ajaks.
  • Pärast pausi püüab ta ühendust taastada (poolavatud olek).
  • Kui päringud on edukad, naaseb Circuit Breaker normaalsesse olekusse.

Miks see on vajalik:

  • Ennetab ülekoormust langenud teenusel.
  • Lühendab vastamise aega, kiiresti vea tagasi andes.
  • Parendab süsteemi stabiilsust ja vastupidavust.

Näide Go keeles kasutades raamatukogu github.com/sony/gobreaker:

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

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

    result, err := cb.Execute(func() (interface{}, error) {
        // välise teenuse kutsumine
        return "vastus", nil
    })

    if err != nil {
        fmt.Println("Viga või avatud Circuit Breaker:", err)
    } else {
        fmt.Println("Edukas vastus:", result)
    }
}