Вопрос с собеседования · Spring

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

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

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

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

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

Подробно

Название 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

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования