멀티 서비스 환경 + 비동기 로그 추적 - MDC
·
소프트웨어 마에스트로 16기/팀 프로젝트 - 꼬꼬면
[개요]본 프로젝트는 Spring Boot와 MySQL을 활용한 모의 면접 서비스입니다. 이 글은 사용자 요청에 대한 로그를 추적하는 과정에서 스레드 풀 재사용으로 인한 로그 추적 문제를 MDC를 통해 해결한 내용에 대해 설명합니다. ThreadLocal 이라는 MDC 특성상 비동기 스레드를 사용했을 때 MDC가 전파되지 않는 문제와 멀티 서비스 환경에서 다른 서버로 요청을 보낼 때 MDC 값이 사라지는 문제에 대한 해결에 대해서도 다룹니다. [요약]톰캣 스레드 풀 재사용과 서버 다중화 환경에서 요청별 로그 추적이 가능하도록 MDC를 적용했습니다.TaskDecorator를 통해 MDC 컨텍스트를 비동기 스레드로 전파하고, Nginx에서 전달받은 고유한 X-Request-ID 헤더를 다른 서버 요청 시에도..