Архитектура бэкенда
Circuit breakers: тест на припоминание
Припоминание бьёт перечитывание. Для каждого промпта скажи или напиши полный ответ по памяти, прежде чем открыть эталон — именно усилие припоминания закрепляет материал.
Реконструируй хребет юнита — почему медленное хуже мёртвого, машина из трёх состояний, условие срабатывания, bulkheads, пара timeout-и-fallback и сбои на масштабе флота — не подглядывая в уроки.
- 01Почему медленная зависимость опаснее полностью мёртвой и какова ключевая работа circuit breaker'а?
- 02Опиши три состояния circuit breaker'а и четыре перехода между ними.
- 03Каково условие срабатывания и почему минимальный порог объёма необходим?
- 04Почему breaker'а недостаточно самого по себе, что добавляет bulkhead и каков компромисс thread-pool против semaphore?
- 05Почему timeout — триггер, а fallback — ответ, и почему graceful degradation должна быть редкой?
- 06Как меняются breaker'ы, retries и shedding при переходе от одного процесса к флоту?
Если ты смог реконструировать каждый ответ по памяти, ты держишь хребет юнита: медленное хуже мёртвого, потому что вызывающие блокируются и голодят общий пул; машина из трёх состояний (closed считает, open отвергает, half-open зондирует) быстро отказывает больной зависимости; условие срабатывания — failure rate по скользящему окну с минимальным порогом объёма, где медленное считается отказом; bulkhead изолирует бюджет на зависимость там, где реактивный breaker не может; timeout делает зависание считаемым, а fallback решает, что вернуть, когда открыт; и на масштабе флота опасности — пер-инстансовое состояние, retry amplification, сбивающиеся в стадо пробы и некоординированный shedding — каждой нужен ответ на уровне флота.