🌠 Разминка от наших коллег — джавистов: решаем задачу с реального собеседования
Представьте: пришел баг-репорт — «Баланс пользователя иногда показывает вчерашнее значение». Вы смотрите в код — все нормально. В логах ошибок нет. Кеш есть, TTL — 60 секунд. Нагрузка — 10K RPS. Через час дебага находите причину, и она в одной строке конфига.
Вопрос: что это может быть? Подсказка: проблема не в TTL и не в инвалидации. Думайте шире. Что стоит перед вашим сервисом?
👉 Ждем ваших ответов в комментариях, а к концу дня поделимся решением
· 27.04
Классика. В Node.js/TS стеке встречал похожее: Redis через Nginx, явно добавляешь Cache-Control: no-store на /api/balance — и думаешь что порядок. Потом оказывается что в конфиге Nginx proxy_cache_valid 200 1h; перекрывает заголовки ответа.
Ещё вариант: load balancer без sticky sessions + in-memory кеш на ноде. Пользователь попадает на разные инстансы — видит разные значения. TTL в 60 секунд тут вообще не при чём, проблема в том что кеш не общий.
Решение которое спасало: вынести весь state-чувствительный кеш в Redis, запретить Nginx кешировать /api/* целиком.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён