Circuit Breaker в Go. Реализация и библиотеки.

Ответ

Circuit breaker предотвращает каскадные сбои: при большом числе ошибок переходит в состояние "open" и не вызывает бэкенд (сразу возвращает ошибку или fallback); после таймаута пробует снова (half-open). В Go: sony/gobreaker, hashicorp/go-circuitbreaker. Оборачивают вызовы внешнего сервиса; при открытом контуре не делают запрос. Метрики (число вызовов, ошибок) для мониторинга.

cb := gobreaker.NewCircuitBreaker(st)
result, err := cb.Execute(func() (interface{}, error) {
    return client.Call(ctx, req)
})
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.