FrameWork/Spring Cloud
Microservice 분산 추적
by 태윤2
2021. 9. 12.
Zipkin
- https://zipkin.io/
- Twitter에서 사용하는 분산 환경의 Timing 데이터 수집, 추적 시스템 (오픈 소스)
- Google Drapper에서 발전하였으며, 분산환경에서의 시스템 병목 현상 파악
- Collector, Query Service, Databasem WebUI로 구성
- Span
- 하나의 요청에 사용되는 작업의 단위
- 64 bit unique ID
- Trace
- 트리 구조로 이뤄진 Span 셋
- 하나의 요청에 대한 같은 Trace ID 발급
Spring Cloud Sleuth
- 스프링 부트 애플리케이션을 Zipkin과 연동
- 요청 값에 따른 Trace ID, Span ID 부여
- Trace와 Span Ids를 로그에 추가 가능
- servlet filter
- rest template
- scheduled actions
- message channels
- feign client
Spring Cloud Sleuth + Zipkin
- 하나의 요청이 시작 될 때 Trace ID, Span ID 가 할당 되고, 이 ID는 요청이 끝날 때 까지 가지고 있음
- 하나의 흐름에서 새로운 요청을 하게 된다면 Trace ID는 유지되고, Span ID는 새로 할당됨
Users MicroService,OrderService 수정
- build.gradle 에 sleuth, zipkin 주입(둘다)
- application.yml 설정(zipkin 관련)(둘다)
getOrder()
createOrder()
createOrder()
Zipkin을 사용해 마이크로서비스 플로우를 확인 할 수 있다.