Назад к вопросам
Senior
4
Что такое Circuit Breaker?
Компании, где спрашивали
GPTunnel
Ответ от нейросети
sobes.tech AI
Circuit Breaker — это паттерн проектирования, используемый для повышения устойчивости распределённых систем. Он предотвращает постоянные попытки обращения к неработающему сервису, что помогает избежать каскадных сбоев и излишней нагрузки.
Принцип работы:
- При превышении определённого количества ошибок Circuit Breaker «размыкается» и блокирует дальнейшие вызовы к проблемному сервису.
- После некоторого времени происходит попытка «замкнуть» цепь и проверить, восстановился ли сервис.
- Если сервис отвечает успешно, Circuit Breaker возвращается в нормальное состояние.
В Node.js это часто реализуется с помощью библиотек, например opossum.
Пример использования с библиотекой opossum:
const CircuitBreaker = require('opossum');
function asyncServiceCall() {
return new Promise((resolve, reject) => {
// эмуляция вызова внешнего сервиса
if (Math.random() > 0.7) resolve('Success');
else reject('Failure');
});
}
const breaker = new CircuitBreaker(asyncServiceCall, {
timeout: 3000, // время ожидания ответа
errorThresholdPercentage: 50, // порог ошибок для срабатывания
resetTimeout: 5000 // время до попытки восстановления
});
breaker.fire()
.then(console.log)
.catch(console.error);