안녕하세요!
spring boot로 개발한 프로젝트에 Zipkin을 적용해보려 합니다.
그 전에 zipkin에 대하여 공부 하겠습니다.
💡 Zipkin 이란 ?
- MSA(마이크로서비스 아키텍쳐) 환경에서 하나의 요청에 대하여 여러개의 서비스들이 호출됩니다.
이 때, 병목 현상등 문제가 생길 시를 대비하여 별도의 모니터링이 필요해졌습니다.
이를 도와주는 것이 바로 Zipkin 입니다. Zipkin은 분산환경에서 로그 트레이싱을 제공해주는 오픈 소스입니다.
💡 Zipkin의 구성
- 1 ) Zipkin Client Library
: 정보수집을 담당하고, 수집한 것들을 Collector 모듈로 전송합니다.
http를 사용하고 java, javascript, go 언어등을 지원합니다.
- 2 ) Zipkin Server
: Collector -> Storage -> API -> Web UI (dashboard) 로 구성되어있습니다.
Storage에는 in-memory방식과, ES 방식 등이 있는데, 규모가 커진다면 ES(ElasticSearch)방식이 더 적합합니다.
💡 Spring Cloud Sleuth 란 ?
- 여러 서비스를 거쳐서 호출이 일어나기 때문에 추적이 어렵다..! 그래서 추적을 위한 연관된 ID가 필요합니다.
이 ID를 생성해 주는 것이 바로 Spring Cloud Sleuth입니다.
- Spring에서 지원해주는 Zipkin Client Library이고, Spring 연동이 쉽다고 합니다.
예시)
* Trace ID : 클라이언트의 호출이 시작되는 시점 부터 그 호출이 끝날 때 까지 동일한 ID 사용
* Span ID : 마이크로서비스당 1개의 ID가 부여됨.
다음 게시글에는 실제로 Zipkin을 적용해보는 글을 올리겠습니다 !
※ 그림, 참고했던 내용 출처 : https://twofootdog.tistory.com/65
Zipkin과 Sleuth를 활용한 분산 환경 로그 트레이싱
이번 글에서는 Zipkin과 Spring Cloud Sleuth를 활용하여 분산 환경(MSA 환경)에서 트랜젝션 로그 트레이싱을 하는 방법에 대해서 배워보도록 하자. 이 글의 순서는 다음과 같다. 1. Zipkin & Spring Cloud Sleuth.
twofootdog.tistory.com