Bulkhead изолирует ресурсы разных направлений нагрузки. Отдельные пулы соединений, workers и очереди не дают зависшему внешнему сервису занять все ресурсы приложения и остановить остальные функции.
Что такое паттерн Bulkhead («перегородки») в системном дизайне и как изоляция пулов соединений защищает систему от полного отказа?
Bulkhead изолирует ресурсы разных направлений нагрузки. Отдельные пулы соединений, workers и очереди не дают зависшему внешнему сервису занять все ресурсы приложения и остановить остальные функции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Bulkhead изолирует ресурсы разных направлений нагрузки. Отдельные пулы соединений, workers и очереди не дают зависшему внешнему сервису занять все ресурсы приложения и остановить остальные функции.
Например, медленный рекомендательный сервис получает небольшой отдельный пул, а платежи — свой. В каждой секции задают предел параллелизма, длину ожидания и отказ при переполнении. Bulkhead сочетают с timeout и circuit breaker: изоляция ограничивает ущерб, а не устраняет причину сбоя. Слишком мелкое разбиение приводит к простаивающим ресурсам, поэтому размеры выбирают по нагрузке. Общая БД или CPU всё ещё могут оставаться общим bottleneck.