Sobes.tech
Middle — Middle+

Circuit Breaker-in işləmə prinsipini və yüksək yüklü sistemlərdə niyə lazım olduğunu izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Circuit Breaker — xarici xidmətlər və ya komponentlərlə işləyərkən sistemin kaskad uğursuzluqlarından qorunmasına kömək edən nümunədir.

İş prinsipi:

  • Normal vəziyyətdə, Circuit Breaker xarici xidmətə sorğuları keçirir.
  • Əgər səhvlərin sayı müəyyən edilmiş həddən çox olarsa, Circuit Breaker «açılır» və müəyyən müddət üçün növbəti sorğuları bloklayır.
  • Bir fasilədən sonra əlaqəni bərpa etməyə çalışır (yarım açıq vəziyyət).
  • Əgər sorğular uğurlu olarsa, Circuit Breaker normal vəziyyətə qayıdır.

Niyə lazımdır:

  • Çökmüş xidmətə artıq yükü qarşısını alır.
  • Cavab vaxtını azaldır, tez bir zamanda səhv geri qaytarır.
  • Sistemin dayanıqlığını və xətalara davamlılığını artırır.

Go dilində github.com/sony/gobreaker kitabxanası ilə nümunə:

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

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

    result, err := cb.Execute(func() (interface{}, error) {
        // xarici xidmətə çağırış
        return "cavab", nil
    })

    if err != nil {
        fmt.Println("Xəta və ya Circuit Breaker açıq:", err)
    } else {
        fmt.Println("Uğurlu cavab:", result)
    }
}