인프런 커뮤니티 질문&답변

김태헌님의 프로필 이미지
김태헌

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Order Microservice

ZIPKIN에서 오류 나시는분들

해결된 질문

작성

·

471

1

Spring 3버전대에서 zipkin 설정이 바뀌면서

  #  zipkin:
  #    base-url: http://13.124.192.188:9411
  #    enabled: true

이 부분을 주석처리하고

management:
  tracing:
    sampling:
      probability: 1.0
    propagation:
      type: b3
  zipkin:
    tracing:
      endpoint: "http://localhost:9411/api/v2/spans"

위와 같이 설정하였다면 docker run 할때 문제가 생길 수 있습니다! 해당 내용을 토대로 환경변수를 주고 실행을 시켜야 합니다

(저도 깜빡하고 왜 오류나지 고민만 했는데.. 설정을 바꿨었더라구요!)

user-service docker run

docker run -d --network ecommerce-network \
  --name user-service \
 -e "spring.cloud.config.uri=http://config-server:8888" \
 -e "spring.rabbitmq.host=rabbitmq" \
 -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \
 -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \
 -e "logging.file=/api-logs/users-ws.log" \
 kimtaeheon/user-service:1.0

order-service docker run

docker run -d --network ecommerce-network \
  --name order-service \
 -e "spring.cloud.config.uri=http://config-server:8888" \
 -e "spring.rabbitmq.host=rabbitmq" \
 -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \
 -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \
 -e "spring.datasource.url=jdbc:mariadb://mariadb:3306/mydb" \
 -e "logging.file=/api-logs/orders-ws.log" \
 kimtaeheon/order-service:1.0

답변 2

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

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

정보 공유 감사드립니다. 참고로 Spring Boot 3.2 + Spring Cloud 2023.0.0 으로 샘플 코드를 업데이트 했으니, 참고 부탁드립니다.

https://github.com/joneconsulting/toy-msa

말씀하신 Docker에서의 실행 부분도 업데이트 하도록 하겠습니다.

감사합니다.

0

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

Spring Boot 3버전대로 업그레이드 되면서 Zipkin 설정 방법에도 변화가 있었습니다. 구체적으로 zipkin.base-url 대신 management.zipkin.tracing.endpoint를 환경변수로 설정하여 Docker에서 실행해야 합니다.

환경변수를 통해 Zipkin의 엔드포인트를 설정하실 때, 해당 서비스가 Zipkin 서버와 통신할 수 있는 주소와 포트를 정확히 입력하셔야 합니다. 위의 예제에서는 zipkin:9411이 내부적으로 사용되는 Docker 네트워크 상의 Zipkin 서비스 이름과 매핑되어 있는 것으로 보이는데, 이는 동일한 Docker 네트워크 내에서 서비스 이름으로 Zipkin 서버를 참조하고 있기 때문에 가능한 설정입니다.

또한, management.zipkin.tracing.endpoint 외에도 각 서비스가 Zipkin 서버에 트레이싱 정보를 보내기 위한 표본 추출 확률을 설정하는 management.tracing.sampling.probability 등 다른 관련 설정들도 함께 수정하거나 확인이 필요합니다.

관련된 정보는 다음 URL을 참조하시면 더 자세한 내용을 확인하실 수 있습니다:
Spring Boot Reference Documentation
OpenTelemetry With Zipkin

김태헌님의 프로필 이미지
김태헌

작성한 질문수

질문하기