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를 확인하면 어떤 서비스가 어떤 서비스를 호출했는지도 시각적으로 확인할 수 있으므로 서비스가 많아졌을 때 이해를 쉽게 도와줄 수 있다.
'🔥스파르타 TIL (MSA)' 카테고리의 다른 글
Prometheus를 사용해보자 (0) | 2025.04.17 |
---|---|
Spring Cloud 란? (5) - Event-Driven Architecture (0) | 2025.03.10 |
Spring Cloud 란? (3) - 서킷 브레이커 (1) | 2025.03.08 |
Eureka 서버 사용해보기 (1) | 2025.03.08 |
Spring Cloud 란? (4) - API Gateway (0) | 2025.02.11 |