인프런 커뮤니티 질문&답변

Andrew님의 프로필 이미지
Andrew

작성한 질문수

스프링 핵심 원리 - 고급편

ThreadLocal 질문입니다

작성

·

162

0

동시성 이슈를 ThreadLocal을 사용하여 해결하는 내용 잘 들었습니다.

강의를 들으면서 ThreadLocal 관련하여 궁금한 점이 있습니다.

갑자기 트래픽이 몰려서 수 많은 요청이 들어오게 될 경우 ThreadLocal에도 동시에 많은 TraceId를 쓰게 될텐데 메모리의 이슈는 없을까요? 

제가 생각한 답변은 "WAS가 제공하고 있는 스레드 풀이 허용하는 범위 내에서의 요청은 문제없다." 인데 만약 아니라면 답변 부탁드립니다.

추가적으로 비동기 서버 환경(ex. Spring Webflux)에서도 수 많은 요청시 동일한 이슈는 없을지 궁금합니다.

답변 1

1

안녕하세요. 몽실이 제자들님, 공식 서포터즈 David입니다.

TraceId 자체가 계속 쌓이는 게 아니라 요청이 처리된 후 GC대상이 될 것입니다. 따라서 TraceId로 인한 메모리 이슈는 없을 것입니다.

이는 비동기 서버 환경에서도 동일하며 TreaceId 생성으로 인해 메모리 이슈가 발생할 정도의 트래픽이라면 그 전에 서버를 늘려 요청을 분산시켜야 할 것입니다.

감사합니다.

Andrew님의 프로필 이미지
Andrew

작성한 질문수

질문하기