Zipkin은 분산 시스템에서 발생하는 요청의 흐름을 추적하기 위한 분산 트레이싱 시스템(Distributed Tracing System)이다.
마이크로서비스 아키텍처(MSA) 환경에서 서비스 간 호출 관계를 시각화하고, 병목 지점이나 장애 원인을 빠르게 파악하는 데 사용된다.
MSA 환경에서는 하나의 요청이 여러 서비스를 거치며 처리된다.
예시:
클라이언트 → API Gateway → 회원 서비스 → 결제 서비스 → 알림 서비스
이때 문제가 생기면:
👉 Zipkin을 사용하면:
[Client]
↓
[Service A] → [Service B] → [Service C]
↓ ↓ ↓
Trace 데이터 생성 및 전송
↓
[Zipkin Server]
↓
[UI에서 시각화]
| 구성 요소 | 설명 |
|---|---|
| Collector | 트레이스 데이터 수집 |
| Storage | 데이터 저장 |
| Query Service | 데이터 조회 |
| UI | 시각화 |
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'
spring:
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
probability: 1.0
probability: 트레이싱 샘플링 비율 (1.0 = 100%)docker run -d -p 9411:9411 openzipkin/zipkin
👉 접속: http://localhost:9411
[traceId-spanId] INFO 로그 내용
👉 이를 통해 로그만 봐도 요청 흐름 추적 가능
Zipkin은 단순 로그를 넘어서
👉 "요청의 흐름 자체를 시각화" 하는 도구다.
특히 MSA에서는:
👉 Zipkin + Sleuth 조합은
Spring 기반 MSA에서 거의 표준적인 선택이다.
Zipkin은 "요청이 어디서 느려지고 어디서 실패했는지 한눈에 보여주는 분산 추적 도구"다.