Sobes.tech
Middle — Middle+

Circuit Breaker'ın çalışma prensibini ve yüksek yük altındaki sistemlerde neden gerekli olduğunu açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Circuit Breaker — dış hizmetler veya bileşenlerle çalışırken sistemin kaskad arızalarından korunmasına yardımcı olan bir desen.

Çalışma prensibi:

  • Normal durumda, Circuit Breaker dış hizmete gelen istekleri geçirir.
  • Hata sayısı belirli bir eşiği aşarsa, Circuit Breaker «kapanır» ve belirli bir süre için sonraki istekleri engeller.
  • Bir duraklamadan sonra bağlantıyı yeniden kurmaya çalışır (yarı açık durumda).
  • İstekler başarılı olursa, Circuit Breaker normal durumuna döner.

Neden kullanılır:

  • Çöken hizmet üzerindeki aşırı yükü önler.
  • Yanıt süresini azaltır, hatayı hızlıca geri döner.
  • Sistemin dayanıklılığını ve hata toleransını artırır.

Go dilinde github.com/sony/gobreaker kütüphanesi kullanılarak örnek:

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

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

    result, err := cb.Execute(func() (interface{}, error) {
        // dış hizmet çağrısı
        return "yanıt", nil
    })

    if err != nil {
        fmt.Println("Hata veya Circuit Breaker açık:", err)
    } else {
        fmt.Println("Başarılı yanıt:", result)
    }
}