Page 23 -
P. 23
■ 키바나(Kibana)는 일레스틱서치용 시각화 및 데이터 관리 도구이며 차트와 맵, 실시간 히
스토그램을 제공한다.
그럼 가장 간단한 추적 도구인 상관관계 ID부터 다음 절에서 시작해 보자.
Note 이 장의 일부는 8장에서 다룬 자료(주로 스프링 게이트웨이 응답과 사전 및 사후 필터 자료)에 의존한다.
아직 8장을 읽지 않았다면 미리 읽어 보기 바란다.
11.1 S P R I N G M I C R O S E R V I C E S
스프링 클라우드 슬루스와
11
상관관계 ID
필자는 7장과 8장에서 상관관계 ID 개념을 처음으로 소개했다. 상관관계 ID는 임의로 생성된 고
유 번호 또는 문자열이며 트랜잭션이 시작될 때 트랜잭션에 할당된다. 트랜잭션이 여러 서비스를 스프링 클라우드 슬루스와 집킨을 이용한 분산 추적
걸쳐 있을 때 상관관계 ID는 서비스 간 호출로 전파된다.
8장에서 우리는 스프링 클라우드 게이트웨이 필터를 사용하여 유입되는 모든 HTTP 요청을 검
사하고 상관관계 ID가 없을 때는 요청에 삽입했다. 상관관계 ID가 요청에 존재하면 각 서비스
에서 스프링 HTTP 필터를 사용자가 정의해서 유입된 변수를 UserContext 객체에 매핑했다.
UserContext 객체가 있으면 상관관계 ID를 로그 끝에 추가하거나 약간의 작업으로 상관관계 ID
를 스프링 MDC, 즉 맵 진단 컨텍스트(MDC, Mapped Diagnostic Context)에 직접 추가하여 상관관
계 ID를 수동으로 로그 문에 추가했다. MDC는 애플리케이션에서 제공하는 키-값 짝들을 저장하
는 맵이며, 이 키-값은 로그 메시지에 삽입된다.
또한 8장에서 아웃바운드 호출의 HTTP 헤더에 상관관계 ID를 추가하여 서비스의 모든 HTTP
호출에 상관관계 ID가 전파되도록 스프링 인터셉터도 작성했다. 다행히도 스프링 클라우드 슬루
스는 우리를 대신해서 이러한 모든 코드 인프라스트럭처와 복잡성을 관리해 준다. 이제 라이선싱
및 조직 서비스에 스프링 클라우드 슬루스를 추가해 보자. 마이크로서비스에 스프링 클라우드 슬
루스가 추가되면 다음 사항이 가능하다.
405
macrospring_06.indd 405 2022-06-20 오후 1:10:04