Отказоустойчивость — способность сохранять приемлемую работу при оговорённых отказах. На уровне сервиса помогают изоляция сбоев, ограничение ресурсов, восстановление и наблюдаемость.
Что такое отказоустойчивость и что можно сделать со стороны сервиса, чтобы её добиться?
Отказоустойчивость — способность сохранять приемлемую работу при оговорённых отказах. На уровне сервиса помогают изоляция сбоев, ограничение ресурсов, восстановление и наблюдаемость.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Отказоустойчивость — способность сохранять приемлемую работу при оговорённых отказах. На уровне сервиса помогают изоляция сбоев, ограничение ресурсов, восстановление и наблюдаемость.
Начинают с модели отказов и целевых SLO. Внешним вызовам задают timeout, ограниченные retries с jitter и circuit breaker, а очередям — backpressure. Критичное состояние сохраняют долговечно, повторы делают идемпотентными. Реплики полезны, только если отказ одного узла не уничтожает общее состояние и зависимости. Нужны graceful shutdown, healthchecks и проверенный сценарий восстановления. Бесконечные retries и дублирование всех компонентов без анализа могут, наоборот, усилить аварию.