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)
}
}