spring boot + MDC(threadLocal) + Sleuth ( 로그 trace )


spring boot + MDC(threadLocal) + Sleuth ( 로그 trace )

#spring #boot 에서 각 http 요청별 데이터 저장을 위해 MDC 를 사용하는 방법. spring cloud sleuth 를 이용해서 로그 trace 하는 방법에 대해 사용법 및 원리를 알아보겠습니다. 우선 테스트를 위해 start.spring.io 에서 아래와 같이 프로젝트를 생성합니다. spring boot 버전, java 버전등은 각자 학습하는 시점의 적절한 것을 쓰면 무관합니다. MDC 는 동일 쓰레드 전용 map 자료구조를 제공합니다. 보통 http 요청이 오면 하나의 쓰레드가 할당되고, 그 쓰레드를 통해 #필터, #인터셉터 , #controller , #service , #mapper 등이 수행됩니다. 이런 여러 함수에서 공통으로 필요로 하는 데이터를 공유하려면 전역변수를 쓰거나 각 함수 호출시 파라미터로 넘겨줘야 합니다. 전역변수를 쓸 경우, 동시에 여러 쓰레드가 실행될 경우 데이터가 망가지므로 사용할 수 없고 각 함수 호출시 파라미터로 값 넘겨주려니 너무 귀...


#boot #spring #필터 #mapper #service #ELK #controller #threadLocal #zipkin #인터셉터 #Sleuth

원문링크 : spring boot + MDC(threadLocal) + Sleuth ( 로그 trace )