Middle — Middle+
Etibarlılıq sistemlərində Circuit Breaker komponentinin iş prinsipi və məqsədini izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
Circuit Breaker komponenti paylanmış sistemlərin etibarlılığını artırmaq üçün istifadə olunur, işləməyən xidməti təkrar çağırmağa cəhdləri qarşısını alır və sistemə yükü azaldır.
İş prinsipi:
- Bağlı vəziyyət: Bütün sorğular adi şəkildə keçir.
- Açıq vəziyyət: Əgər səhvlərin sayı müəyyən həddini aşarsa, Circuit Breaker «açılır» və növbəti sorğuları bloklayır, dərhal xəta və ya alternativ cavab verir.
- Yarım-açıq vəziyyət: Açıldıqdan sonra müəyyən vaxt keçdikdən sonra, xidməti bərpa edib-etmədiyini yoxlamaq üçün məhdud sayda sorğu icazə verir.
Əgər sorğular uğurlu olursa, yenidən bağlı vəziyyətə keçir, əks halda yenidən açılır.
Bu, sıradan çıxmış xidmətdə artıq yüklənmənin qarşısını alır və bərpa üçün vaxt verir, sistemin ümumi dayanıqlığını artırır.
Go dilində nümunə (sadələşdirilmiş):
// Pseudo-kod
cb := NewCircuitBreaker(3, time.Minute) // 3 xəta - 1 dəqiqə açıq qalır
if cb.AllowRequest() {
err := callRemoteService()
if err != nil {
cb.RecordFailure()
} else {
cb.RecordSuccess()
}
} else {
// Dərhal xəta qaytar, xidmət əlçatan deyil
}