일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정규표현식
- 분산추적
- 도커
- 네이버웍스
- sh
- MAC
- 가상머신 차이
- MSA
- error
- 마이크로서비스 패턴
- GitLab
- 리눅스
- desktop
- application 재기동
- ChatGPT
- AWS
- 알림
- 모니터링 및 경고 중앙화
- 자바 정규식
- 제어루프
- GIT
- eclipse
- Catalina
- 메시지
- linux
- crontab
- docker
- Chat gpt
- 네이버클라우드플랫폼
- chat API
- Today
- Total
시간나는대로 틈틈히 정리 합시다~~!!!
[마이크로서비스 디자인 패턴] 분산 추적 (distributed tracing) 본문
1. 문제점
시스템 환경에 대한 외부 호출을 처리하는 동안 마이크로서비스 사이에서 흐르는 요청 및 메시지를 추적 할 수 있어야 함
장애 시나리오 예시
- 최종 사용자가 특정 장애에 대한 해결을 요청했을 때 문제를 일으킨 마이크로서비스를 찾고 근본 원인을 밝히려면
어떻게 해야 하는가?
- 특정 엔티티와 관련된 문제를 지원하고자 이와 관련된 모든 로그 메시지를 찾고 싶다.
예를 들어, 어떤 주문 번호에 대한 문제가 발생했을 때 해당 주문의 처리에 관여한 모든 마이크로서비스의
로그 메시지를 찾으려면 어떻게 해야 하는가?
2. 해결책
- 공조 마이크로서비스 사이의 처리 과정을 추적하려면 관련된 모든 요청 및 메시지에 상관 ID를 넣어야 하고,
모든 로그 이벤트에 상관 ID가 있어야 한다. (correlation ID)
- 중앙화된 로깅 서비스에서 상관 ID를 검색하면 관련된 로그 이벤트를 모두 찾을 수 있다.
- 비즈니스 관련 식별자(예:고객, 제품, 주문 등)가 포함된 로그 이벤트를 찾은 다음 상관 ID로 검색하면
해당 비즈니스 식별자와 관련된 모든 로그 이벤트를 찾을 수 있다.
3. 해결 필요조건
- 모든 수신 요청과 이벤트에 고유 상관 ID를 할당한다.
- 상관 ID는 헤더와 같이 찾기 쉬운 위치에 넣는다.
- 마이크로서비스에서 외부로 요청이나 메시지를 보낼 때는 요청과 메시지에 상관 ID를 꼭 넣는다.
- 모든 로그 이벤트에는 사전에 정의한 형식의 상관 ID가 있어야 한다.
- 중앙화된 로깅 서비스는 로그 이벤트에서 상관 ID를 추출해 검색할 수 있다.
4. 구현된 오픈소스 도구
- 스프링클라우드 : 스프링 클라우드 슬루스(Sleuth)와 집킨(Zipkin)
- 이스티오 : 예거(Jaeger)
'IT' 카테고리의 다른 글
[마이크로서비스 디자인 패턴] 제어 루프 (control loop) (0) | 2021.03.30 |
---|---|
[마이크로서비스 디자인 패턴] 서킷 브레이커 (Circuit breaker) (0) | 2021.03.30 |
[마이크로서비스 디자인 패턴] 로그 분석 중앙화 (centralized log analysis) (0) | 2021.03.29 |
[GIT] 터미널에서의 명령어 (0) | 2021.03.29 |
[Error] Mac Os 버전 업그레이드 이후 터미널에서 명령어 실행 시 오류 발생 건 (0) | 2021.03.28 |