-
분산추적내일배움캠프 Spring 심화 1기/TIL 2024. 8. 7. 23:52
분산추적
분산추적은 분산 시스템에서 서비스 간의 요청 흐름을 추적하고 모니터링하는 방법입니다. 각 서비스의 호출 관계와 성능을 시각화하여 문제를 진단하고 해결할 수 있도록 돕습니다. 주요 개념으로는 트레이스, 스팬, 컨텍스트가 있습니다.
- 트레이스(Trace) : 트레이스는 하나의 요청이 시작부터 끝까지 각 서비스를 거치는 전체 흐름을 나타냅니다.
- 하나의 트레이스는 여러 개의 스팬으로 구성됩니다.
- 분산 시스템에서 클라이언트의 요청이 여러 서비스로 전달될 때 각 서비스 호출이 트레이스의 일부로 기록됩니다.
- 트레이스 ID는 각 스팬에 공통으로 부여되며 이를 통해 전체 요청 흐름을 추적할 수 있습니다.
- 스팬(Span) : 스팬은 분산 추적에서 가장 작은 단위로 특정 서비스 내에서의 개별 작업 또는 요청을 나타냅니다.
- 각 스팬은 시작 시간과 종료 시간을 기록하여 작업의 지속 시간을 나타냅니다.
- 스팬은 고유한 스팬 ID를 가지며 이는 트레이스 ID와 함께 특정 작업을 식별하는 데 사용됩니다.
- 스팬은 부모 자식 관계를 가질 수 있으며 이를 통해 호출 계층 구조를 표현합니다.
- 스팬에는 메타데이터를 추가하여 상세한 정보를 기록할 수 있습니다.
- 컨텍스트(Context)
- 컨텍스트는 요청이 서비스 간에 전달될 때 함께 전파되어 각 서비스가 요청의 전체 흐름에 대한 정보를 가질 수 있게 합니다.
- 컨텍스트는 트레이스 ID, 스팬 ID, 부모 스팬 ID 등의 정보를 포함하여 각 서비스가 요청의 출처와 경로를 추적할 수 있도록 돕습니다.
- 서비스 호출 간에 컨텍스트를 유지합으로써 분산 시스템 전체에서 일관된 추적이 가능합니다.
분산 추적이 필요한 이유
마이크로서비스 아키텍처(MSA)에서는 여러 서비스가 협력하여 하나의 요청을 처리합니다. 그래서 서비스 간의 복잡한 호출 관계로 인해 문제가 발생했을 때 발생 원인을 파악하기 어려울 수 있습니다. 그래서 분산 추적을 통해 각 서비스의 호출 흐름을 명확히 파악하고 성능 병목이나 오류를 빠르게 진단할 수 있습니다..
'내일배움캠프 Spring 심화 1기 > TIL' 카테고리의 다른 글
Amazon ECS (Amazon Elastic Container Service) (3) 2024.08.09 쿠버네티스 (Kubernetes, K8s) (0) 2024.08.08 레디스 (Redis) (0) 2024.08.06 DB 버전관리 (Migration) (0) 2024.08.05 도커(Docker) (0) 2024.08.02 - 트레이스(Trace) : 트레이스는 하나의 요청이 시작부터 끝까지 각 서비스를 거치는 전체 흐름을 나타냅니다.