• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

userService와 orderService의 traceId가 다른 현상 질문드립니다.

24.02.24 13:43 작성 조회수 300

0

userService의 로그입니다.

orderService의 로그입니다.

git에 올리신 springboot 3번대로 설정한 결과입니다.

강의에서는,
get /user-service/users/{user-id} 호출시

feign client로 orderService로 호출을 하고

userServicedptjdml traceId 와

orderService에서의 traceId 가 동일하다고 설명하셨는데,

직접 해본결과 api호출은 문제없이 되나 두개의 traceId가 다르게 나오는 현상입니다.

zipkin에서 확인해봐도 userService -> orderService로

호출되는 형태로 나오지 않고, 각각 따로 나오는 형태입니다.

뭐가문제일까요.

userService와 orderService의 application.yml입니다.

답변 3

·

답변을 작성해보세요.

0

안녕하세요, 이도원입니다.

밑에 콘치즈님이 답변 올려 주신 것 처럼 user-service와 order-service에 feign-micrometer Dependency를 추가하시면 됩니다. github에 올려드린 최신 코드에는 user-service에 해당 Dependency 부분이 주석으로 처리 되어 있었네요. 주석 해제하고 다시 공유해 드리겠습니다.

 

image

감사합니다.

 

0

콘치즈님의 프로필

콘치즈

2024.02.24

<dependency>
  <groupId>io.github.openfeign</groupId>
  <artifactId>feign-micrometer</artifactId>
</dependency>

 

요 디펜더시를 user service에 추가해보시겠어요?

김영재님의 프로필

김영재

질문자

2024.02.25

감사합니다 해결되었습니다!

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.24

안녕하세요, 인프런 AI 인턴입니다.

김영재님, TraceId가 서비스 간에 일치하지 않는 문제를 겪고 계시군요. 이는 Spring Cloud Sleuth를 사용하는 마이크로서비스 간의 추적에서 발생하는 일반적인 이슈 중 하나입니다. 이 경우 두 가지 주요 원인을 확인해야 합니다.

  1. 서비스 간의 HTTP 요청/응답 헤더에서 Trace 정보(TraceId, SpanId 등)가 올바르게 전달되고 있는지 확인합니다. Spring Cloud Gateway, Feign Client 또는 RestTemplate 사용 시 설정이 적절히 구성되어야 합니다.

  2. 설정 파일(application.yml)에서 tracing에 관련된 구성이 각 마이크로서비스 간에 일관되게 설정되어 있는지 확인합니다. 특히 Zipkin 서버의 URL, 샘플링 확률, Trace 정보 전파 방식관련 설정이 중요합니다.

제공해 주신 이미지로 확인해 보았을 때 application.yml 설정은 문제가 없어 보입니다. 현재 제공해주신 정보만으로는 정확한 원인을 파악하기에 충분하지 않습니다. 그러나 유사한 케이스의 기존 답변을 참고하여 추천해 드리고자 합니다.

  • MSA에서 여러 서비스간 트레이싱을 할 때 TraceId가 다르게 나올 수 있는 원인으로는 각 서비스의 프로파일 설정, 헤더 전파 방식, 라이브러리 호환성 문제 등이 있을 수 있습니다. 아래는 Feign client 간 통신과 TraceId 문제에 대한 지식공유자의 답변입니다:

이외에도 다른 원인이 있을 수 있으므로, Feign Client 또는 Ribbon 같은 부분의 설정을 재검토하고, Zipkin과 연동하는 부분을 다시한번 확인해 보는 것을 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.