Нагрузка выросла, latency пополз вверх, потом OutOfMemoryError 👇
📦 Задание — code review
Сервис обрабатывает входящие события асинхронно.
@Configuration
public class ExecutorConfig {
@Bean
public ExecutorService eventExecutor() {
return Executors.newFixedThreadPool(10);
}
}
@Service
@RequiredArgsConstructor
public class EventService {
private final ExecutorService eventExecutor;
public void handle(Event event) {
eventExecutor.submit(() -> process(event));
}
}
▪️ Объясни
— Какая очередь стоит за Executors.newFixedThreadPool и почему она опасна под нагрузкой.
— Почему задачи бесконтрольно «копятся» и система падает в OutOfMemoryError, а не начинает отбрасывать нагрузку.
— Как собрать ThreadPoolExecutor руками: ограниченная очередь, RejectedExecutionHandler, backpressure. Чем плох и newCachedThreadPool в этом сценарии.
Ставьте → 🔥, если нравится формат. Если нет → 🌚
💬 Решения под спойлер. Сравним, какое будет лучше.
🐸 Библиотека собеса по Java
#practise