Встречается на собеседованиях • сегодня
Какая интересная история с благополучным концом была на рабочем проекте
Однажды на проекте с высоконагруженным микросервисом возникла проблема: при нагрузке >1000 RPS сервис начинал "глотать" CPU и падал. Логи не помогали, метрики показывали лишь высокую загрузку.
После недели дебага нашли корень проблемы: в кэширующем декораторе был баг с неатомарным обновлением ConcurrentHashMap. При конкурентном доступе возникала race condition, приводящая к бесконечному пересозданию кэшируемых объектов.
Фикс занял 3 строки:
java
// Было
cache.put(key, createExpensiveObject());
// Стало
cache.computeIfAbsent(key, k -> createExpensiveObject());После релиза фикса CPU упал на 70%, а сервис стабильно держал 5000 RPS. Главный урок - даже в "простом" коде с конкурентными коллекциями могут скрываться коварные баги.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы