Получить доступ

Чем bulkhead отличается от rate limiter?

MiddleУстойчивость и наблюдаемостьSpring Boot
Ещё спрашивают так:
  • Что такое bulkhead?
Коротко

Bulkhead ограничивает число одновременных вызовов зависимости — изоляция отсеков: медленный сервис не съест все потоки. Rate limiter ограничивает частоту за окно времени.

  • Bulkhead: семафор или отдельный пул потоков на зависимость
  • Rate limiter: защитить квоту внешнего API, не перегрузить зависимость
  • Медленная зависимость при rate limiter всё равно займёт все потоки — нужен bulkhead

А ещё Resilience4j: @Bulkhead (SEMAPHORE или THREADPOOL), @RateLimiter

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Название bulkhead пришло из судостроения: корпус делят на отсеки, чтобы пробоина в одном не потопила судно. В приложении это отдельный пул потоков или семафор на каждую внешнюю зависимость — тогда зависший сервис съедает только свой отсек, а не все потоки приложения. Rate limiter решает другую задачу: соблюсти договорённость о частоте (например, не более ста запросов в секунду к партнёрскому API) или защитить себя от всплеска. Механизмы дополняют друг друга и обычно применяются вместе с таймаутами и circuit breaker: таймаут ограничивает длительность одного вызова, bulkhead — число одновременных, rate limiter — частоту, а circuit breaker отключает заведомо неработающую зависимость.

Что хотят услышать

  • Одновременность против частоты.
  • Сценарии каждого.

Частые ошибки

  • Считать, что достаточно одного из механизмов.
  • Ставить общий пул на все зависимости и терять изоляцию.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Bulkhead ограничивает число одновременных вызовов, изолируя ресурсы под каждую зависимость; rate limiter ограничивает частоту вызовов за интервал времени
  • ✗Это два названия одного и того же механизма
  • ✗Bulkhead ограничивает частоту, а rate limiter — параллелизм
  • ✗Bulkhead применяется только к базам данных, rate limiter — только к HTTP

Что спросят дальше

  • Чем bulkhead на семафоре отличается от bulkhead на отдельном пуле потоков?
  • Как эти механизмы сочетаются с circuit breaker?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем