본문 바로가기

MSA

Zipkin과 Sleuth을 사용해보기 -1

안녕하세요! 

spring boot로 개발한 프로젝트에 Zipkin을 적용해보려 합니다.

그 전에 zipkin에 대하여 공부 하겠습니다. 

 

 

💡 Zipkin 이란 ?

- MSA(마이크로서비스 아키텍쳐) 환경에서 하나의 요청에 대하여 여러개의 서비스들이 호출됩니다.

이 때, 병목 현상등 문제가 생길 시를 대비하여 별도의 모니터링이 필요해졌습니다.

이를 도와주는 것이 바로 Zipkin 입니다. 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