FrameWork/Spring Cloud
Microservice 분산 추적
태윤2
2021. 9. 12. 08:30
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는 새로 할당됨
- Zipkin 설치 및 실행
Users MicroService,OrderService 수정
- build.gradle 에 sleuth, zipkin 주입(둘다)
- application.yml 설정(zipkin 관련)(둘다)
- UserServiceImpl에 log 찍기
- OrderController에 log 찍기
- 강제로 오류 생성하기