Sleuth란?
MSA구조에서 클라이언트의 호출이 내부적으로 여러 마이크로서비스를 거쳐서 일어난다. 이와 같은 구조때문에 전체 트랜잭션에 대한 로그 추적이 어렵다.
이를 추적하기 위해서는 연관된 ID가 필요하다. 이러한 ID(trace, span)를 자동으로 생성해주는 것이 Spring Cloud Sleuth이다.
Spring Cloud Sleuth의 ID 체계
Span ID
- 하나의 작업 단위, 각 서비스 호출시 새로운 Span ID가 생성
- Trace중 첫번째 생성된 Span ID를 Root Span이라 부름
Trace ID
- 최초 호출시 실행되는 서비스에서 생성
트위터의 집킨(Zipkin), 클라우데라의 HTrace 및 구글의 대퍼(Dapper)등의 UI툴을 이용하면 분산 환경의 로그 트레이싱을 쉽게 할 수 있다.
Spring Cloud Sleuth의 기능
Slf4J의 로그에 [ Span Id, Trace Id ] 를 추가할 수 있다.
2018-05-11 15:21:46.466 INFO [sleuth-example,8f8964f0eebf01a8,8f8964f0eebf01a8,false ] 2647
'MicroService' 카테고리의 다른 글
11번가 Spring Cloud 기반 MSA로의 전환 - 발표정리 (0) | 2019.05.24 |
---|---|
Message-Driven 마이크로서비스 (0) | 2018.12.03 |
도커 컨테이너와 마이크로서비스 (1) | 2018.11.28 |
스프링 클라우드 - 마이크로서비스간 통신이란 (Ribbon) (5) | 2018.08.09 |
Spring Cloud Overview + 적용기 (1) | 2018.08.08 |