728x90
반응형
CommonPool
-
CompletableFuture + commonPool은 왜 위험한가 — timeout을 걸어도 서버가 망가지는 이유Spring 2025. 12. 24. 16:46
[개요] 이 글은 다음 질문에서 출발했다.“CompletableFuture로 비동기 처리하고 timeout까지 걸었는데,왜 서버는 여전히 터질 수 있을까?”이 질문에 답하기 위해ForkJoinPool(commonPool), CompletableFuture timeout, RestTemplate 블로킹 I/O를직접 코드와 로그로 실험하며 검증했다.이 글은 이론 설명이 아니라실제 실험 결과를 통해 ‘왜 이런 문제가 발생하는지’를 증명하는 기록이다. 1. 처음 상태: commonPool + CompletableFuture (timeout 없음)대출 비교 API를 구현하면서 여러 금융사 API를 병렬 호출했다.각 금융사 API는 RestTemplate을 사용한 외부 HTTP 호출이었고, 느린 금융사(SLOW)가..