Sobes.tech
Middle — Middle+

Circuit Breaker иштөө принцибин түшүндүрө аласызбы жана ал жогорку жүктөмдүү системаларда эмне үчүн керек?

sobes.tech AI

AIден жооп

Circuit Breaker — бул шаблон, ал сырткы кызматтар менен иштөөдө системаны каскаддык катаалдардан коргоого жардам берет.

Иш принципи:

  • Нормалдуу абалда, Circuit Breaker сырткы кызматка суроолорду өткөрөт.
  • Эгер каталар саны белгиленген чектен ашса, Circuit Breaker «ачылат» жана белгиленген убакытка чейин кийинки суроолорду блоктойт.
  • Үзгүлтүксүздөн кийин, ал байланышты калыбына келтирүүгө аракет кылат (жарым ачык абал).
  • Эгер суроолор ийгиликтүү болсо, Circuit Breaker нормалдуу абалга кайтарат.

Эмне үчүн керек:

  • Ашыкча жүктөмдөн сактайт өчүрүлгөн кызматты.
  • Жооп убактысын кыскартат, тез арада катаны кайтарат.
  • Түзүмдүн туруктуулугун жана каршылык жөндөмдүүлүгүн жогорулатат.

Go тилинде github.com/sony/gobreaker китепканасын колдонуп мисал:

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

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

    result, err := cb.Execute(func() (interface{}, error) {
        // тышкы кызматты чакыруу
        return "жооп", nil
    })

    if err != nil {
        fmt.Println("Каталар же ачылган Circuit Breaker:", err)
    } else {
        fmt.Println("Ийгиликтүү жооп:", result)
    }
}