Middle — Middle+
Қоидаҳои кор ва мақсади компонентии Circuit Breaker дар системҳои эътимоднокиро шарҳ диҳед.
sobes.tech AI
Ҷавоб аз AI
Компонентът Circuit Breaker се използва за повишаване надеждността на разпределените системи, като предотвратява повторните опити за извикване на неработеща услуга и намалява натоварването върху системата.
Принцип на работа:
- Затворено състояние: Всички заявки преминават както обикновено.
- Отворено състояние: Ако броят на грешките надвиши прага, Circuit Breaker «се отваря» и блокира допълнителни заявки, като незабавно връща грешка или алтернативен отговор.
- Полуотворено състояние: След известно време след отварянето, позволява ограничен брой заявки, за да провери дали услугата е възстановена.
Ако заявките са успешни, се връща към затворено състояние, иначе се отваря отново.
Това предотвратява прекомерното натоварване на неработещата услуга и дава време за възстановяване, подобрявайки цялостната стабилност на системата.
Пример на Go (опростен):
// Псевдокод
cb := NewCircuitBreaker(3, time.Minute) // 3 грешки - 1 минута отваряне
if cb.AllowRequest() {
err := callRemoteService()
if err != nil {
cb.RecordFailure()
} else {
cb.RecordSuccess()
}
} else {
// Връщаме грешка веднага, услугата не е достъпна
}