Ctrl K
Java · Senior · Дизайн

Спроектируйте кеширование для нагруженного Spring Boot приложения, которое работает в нескольких инстансах. Как вы выберете между локальным и распределённым кешем и как будете решать инвалидацию?

~10 мин голосом

Как подойти

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

Встречал этот вопрос на настоящем собесе?
Ответов0
Средний балл—
Сильных—
Тренировали0
Темы
Похожие вопросыПеред базой стоит кеш в Redis с карточками товаров, TTL — пять минут. Расскажите, как бы вы организовали чтение и обновление, как кеш может разойтись с базой, и что произойдёт, когда истечёт TTL у очень популярного ключа. MiddleСервис на Spring Boot должен принимать задачи на генерацию отчётов, каждая выполняется несколько минут. Как вы организуете их выполнение внутри Java-приложения? MiddleНапишите функцию memoizeAsync. Она принимает асинхронную функцию от строкового ключа и время жизни кэша в миллисекундах и возвращает обёртку: повторный вызов с тем же ключом не ходит в сеть, параллельные вызовы делят один запрос, а ошибки не кэшируются. SeniorВы добавили кеш перед базой данных для карточек товаров, и пользователи начали жаловаться, что видят старые цены. Как устроить кеширование, чтобы этого избежать? MiddleСпроектируйте сервис коротких ссылок: пользователь отдаёт длинный URL и получает короткий, а переход по короткой ссылке перенаправляет на оригинал. Middle

Ответь голосом

Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.

Войти, чтобы ответить

Лучше в наушниках · ~10 мин