본문 바로가기

좋아하는 것_매직IT/1.spring

38.Spring, 스프링 클라우드 슬루스(Spring Cloud Sleuth)에 대해서 테스트 코드를 작성해보자.

반응형

블로그의 목적

스프링 클라우드 슬루스(Spring Cloud Sleuth)에 대한 이해와 적용 방법 알기.

스프링 클라우드 슬루스에 대한 내용을 설명은 아래 블로그로 대체 하려고 함.

https://thub.sk.com/board/viewArticle.do?id=160937

테스트 어플리케이션에 스프링 클라우드 슬루스를 적용해보자.

하나, maven 의존성 파일(pom.xml)에 아래 내용을 추가하면됨.

설명

해당 의존성은 스프링 클라우드 슬루스를 위한 모든 핵심 라이브러리를 가져옴.

이것이 전부임...;;;

위의 의존성을 추가 하면, 아래 내용이 자동적으로 추가된다.

하나, 서비스로 들어오든 모든 HTTP 호출을 검사하고, 그 호출에서 스프링 클라우드 슬루스의 추적 정보가 존재하는지 확인함.

추적 정보가 있다면,

마이크로 서비스로 전달된 추적정보를 수집해 로깅 및 처리 서비스를 제공함.

둘, 스프링 클라우드 슬루스 추적 정보를 스프링 MDC에 추가해 마이크로 서비스에서 생성된 모든 로그 문이 로그에 추가됨.

셋, 스프링 클라우드 추적정보를 서비스에서 나가는 모든 HTTP 호출과 스프링 메시징 채널의 메시지에 삽입함.

정상 설정되면,

서비스 어플리케이션 코드에서 만든 로그 문에 스프링 클라우드 슬루스의 trace 정보가 포함됨.

trace 정보 내용은 아래와 같음.

서비스 어플리케이션의 이름

로그를 출력하는 어플리케이션 이름

기본적으로 어플리케이션 이름 프로퍼티를 추적해서 기록함.

spring.application.name

trace ID

상관관계 ID 와 동급 용어.

전체 트랜잭션에서 고유한 ID

span ID

전체 트랜잭션의 일부를 나타내는 고유한 ID

트랜잭션에 속한 각 서비스에서 고유한 스팬 ID가 존재함.

집킨 추적 데이터 전송 여부

트랜잭션을 집킨에 보낼 시점과 방법을 결정할 수 있음.

해당 정보가 이를 나타냄.

true : 전송.

false : 전송하지 않음.

둘, 간단한 어플리케이션을 구현해 보자.

기능

/hello 요청을 받으면, 아래 메시지를 클라이언트에게 전송해줌

하나, Spring Initializr 를 통해서 Spring Boot 프로젝트 한개를 생성함.

둘, 아래와 같이 controller 를 구현함.

HelloController.java

셋, application.properties 에 아래내용을 추가함

내용

​​​​​​​​​​​​​​설명

로깅을 디버깅 모드로..

어플리케이션 이름 설정

넷, 어플리케이션을 컴파일 & 실행 하고 Postman 을 통해서 테스트함

아래와 같이 Postman 으로 테스트 함.

정상적으로 결과갑을 수신함을 확인함.

​​​​​​​다섯, 로그를 확인함.

설명

예시

2020-08-10 12:51:48.689 DEBUG [sleuthtest,a64d744c451faf99,a64d744c451faf99,true] 18676 --- [nio-8080-exec-3] o.s.web.servlet.DispatcherServlet : GET "/hello", parameters={}

설명

서비스 어플리케이션 이름

sleuthtest

trace ID

a64d744c451faf99

span ID

a64d744c451faf99

집킨에 추적 데이터 전송 여부

true

위와 같이 서비스 호출을 해서 생성된 로그 데이터를 확인할 수 있음.

결론

스프링 클라우드 슬루스(Spring Cloud Sleuth) 란?

상관관계ID를 사용해 HTTP 호출을 측정하는 스프링 클라우드 프로젝트

생성 중인 추척 데이터를 오픈집킨(OpenZipkin)에 공급할 수 있는 훅(연결고리)을 제공함.

오늘도 스프링 클라우드 슬루스에 대한 지식 및 적용 방법 한가지 획득완료! 감사합니다.


오늘의 명언 한마디

지금 당장 시작하지 않으면 안 될 이유는 어디에도 없다.

작심삼일이라도 좋다.

최소한 "움직인다" 면 3일이라도 값진 날을 보낼 수 있을 것이고, 그렇게 3일.. 3일.. 늘려나가면, 일년이 되고 3년이 되고, 결국에는 평생을 값진 나날로 보낼 수 있을 테니까...

이임복지음, "대한민국 직장인 부동산 경매로 재테크 하라" 중에서...


목표

- 나의 강점을 바탕으로 나의 일을 잘해냄으로써 타인과 사회를 아릅답게 만든다.

- 현재 내가 가진 능력으로 누군가에 도움이 될 수 있을까? 에 대해서 항상 생각하기

- 나는 블로그 생태계에서 IT 테크관련 파워블로거및 인플루언서가 반드시 된다!

목표를 이루기 위한 실천방안

- 꾸준한 블로깅/기록법/독서법으로 넘버원이 아닌 온리원이 되보자.

- 천사불여일행(千思不如一行)을 항상생각하며 체화 및 각인시키자.

- "천번 생각하는것보다 한번 행동하는 것이 더 중요하다."

- 기기일약 불능십보(騏驥一躍 不能十步) / 노마십가 공재불사(駑馬十駕 功在不舍)

- 천리마도 한번에 열걸음을 뛸 수 없고, 느리고 둔한말이라도 열흘이면 하룻길을 간다.

- 모든 실수에는 마술이 숨어 있다. 따라서 나는 실수하면 실수할수록, 그런 실수에서 더 많이 배울수록 삶에서 더 많은 마술을 갖는다.

728x90
300x250