🔥스파르타 TIL (MSA)

Spring Cloud 란? (5) - 분산 추적

승승장규 2025. 3. 10. 10:51
 

Spring Cloud 란? (4) - API Gateway

클라이언트의 요청을 받아 백엔드 서비스로 라우팅하고, 다양한 부가 기능을 제공하는 중간 서버 역할.클라이언트 요청을 적절한 서비스로 전달하는 라우팅 기능요청의 인증 및 권한을 검증여

seungg8361.tistory.com

 

Spring Cloud에서 분산 추적은 분산 시스템에서 발생하는 요청의 흐름을 추적하고 모니터링하는 중요한 기술로, 여러 서비스가 서로 독립적으로 실행되면서도 서로 의존하고 상호작용하는 시스템이다.

MSA에서 각 서비스는 독립적으로 실행되며, 클라이언트의 요청을 처리하기 위해 서로 다른 서비스에 요청을 보내는데, 분산 추적은 이러한 여러 서비스 간의 요청 흐름을 추적하여 문제 해결, 성능 최적화, 서비스 상태 모니터링 등을 할 수 있게 해줄 수 있다.

 

API Gateway에서 들어오는 요청을 여러 서비스로 라우팅하고, 각 서비스는 독립적으로 처리된다. 분산 추적을 통해 각 요청이 API Gateway에서 서비스들로 어떻게 전달되는지, 그리고 서비스들 간의 요청 및 응답 흐름을 추적하는 과정을 Zipkin을 사용해서 직접 확인해보자.

 

 

우선 docker 환경에 Zipkin을 다운받아보자

docker run -d -p 9411:9411 openzipkin/zipkin

 

 

정상적으로 다운이 완료되면 방금 정해준 9411 포트로 접속할 수 있다

 

처음 접속했을 때는 아무것도 없는 빈 페이지 인 것을 볼 수 있지만. 

 

Order 애플리케이션에서 @FeignClient로 Product 애플리케이션을 호출하면 Order와 Product의 정보를 모두 응답해주는 것을 볼 수 있다. 이제 다시 Zipkin으로 넘어가서  Run Query를 클릭하면

 

방금 요청을 보낸 내용을 확인할 수 있는데 옆에 SHOW를 눌러보자

 

실제로 Order 애플리케이션으로 날아온 요청을 Product 애플리케이션까지 흐름을 추적해서 응답시간이 얼마나 걸렸는지도 확인할 수 있다. 이런 문서를 확인해서 문제를 해결해 나아가 볼 수 있다.

 

Dependencies를 확인하면 어떤 서비스가 어떤 서비스를 호출했는지도 시각적으로 확인할 수 있으므로 서비스가 많아졌을 때 이해를 쉽게 도와줄 수 있다.