>Java >java지도 시간 >Java를 사용하여 Spring Cloud Sleuth 기반 분산 추적 시스템을 개발하는 방법

Java를 사용하여 Spring Cloud Sleuth 기반 분산 추적 시스템을 개발하는 방법

WBOY
WBOY원래의
2023-09-20 12:33:091304검색

如何使用Java开发一个基于Spring Cloud Sleuth的分布式追踪系统

Java를 사용하여 Spring Cloud Sleuth 기반 분산 추적 시스템을 개발하는 방법

소개:
마이크로서비스 아키텍처의 인기로 인해 점점 더 많은 애플리케이션이 단일 모놀리식 애플리케이션에서 여러 마이크로서비스로 전환되고 있습니다. 서비스. 복잡한 분산 시스템에서는 요청의 호출 경로를 추적하는 것이 매우 어렵습니다. 이때에는 안정적이고 효과적인 분산 추적 시스템이 필수적입니다. 이 기사에서는 Java를 사용하여 Spring Cloud Sleuth 기반의 분산 추적 시스템을 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

1. 분산 추적 시스템이란 무엇입니까?
분산 추적 시스템은 분산 시스템에서 요청의 호출 경로를 모니터링하고 추적하는 데 사용되는 도구입니다. 다양한 서비스 간에 고유 식별자(추적 ID)를 전달하여 요청의 호출 체인을 추적합니다. 분산 추적 시스템은 각 서비스의 요청 시간, 응답 시간, 요청 경로 및 토폴로지 관계를 기록하고 이 정보를 집계, 분석 및 표시하여 개발자가 문제를 찾아 해결하는 데 도움을 줄 수 있습니다.

2. Spring Cloud Sleuth 소개
Spring Cloud Sleuth는 Spring Cloud 생태계에서 제공되는 Zipkin 기반 분산 추적 솔루션입니다. 각 서비스 요청에 표준 HTTP 헤더와 일부 데이터를 추가하여 완전한 호출 링크를 구성한 다음 이러한 데이터를 Zipkin Server로 전송하여 집계 및 표시합니다.

3. 분산 추적 시스템 개발의 예

  1. Spring Boot를 사용하여 간단한 분산 시스템 만들기
    먼저, 여러 마이크로서비스를 포함하는 분산 시스템을 만들어야 합니다. 이 예에서는 주문 서비스와 제품 서비스라는 두 가지 마이크로서비스를 만듭니다. 주문 서비스는 주문 요청을 받고 제품 서비스를 호출하여 제품 재고 작업을 수행합니다.
  2. 종속성 추가
    각 서비스의 pom.xml 파일에 Spring Cloud Sleuth 및 Zipkin 종속성을 추가합니다.

    <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>
    
    <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>
  3. 애플리케이션 구성
    각 서비스의 구성 파일에 다음 구성을 추가합니다.

    spring:
      zipkin:
     base-url: http://localhost:9411
    sleuth:
      sampler:
     probability: 1.0
  4. 추적 사용 code
    Order Service 및 Product Service 코드에서 Tracing 객체를 사용하여 요청을 추적합니다. 호출 체인 시작 부분에서 새 Span을 만들고 요청에 추적 ID를 추가합니다. 각 서비스 간에 요청이 전달되면 해당 Span 정보가 요청에 자동으로 추가됩니다.

    @Autowired
    private Tracer tracer;
    
    public void placeOrder(Order order) {
     Span span = tracer.createSpan("placeOrder");
     try {
         // 业务逻辑
         productClient.updateProductStock(order.getProductId(), order.getQuantity());
     } finally {
         tracer.close(span);
     }
    }
  5. Zipkin 서버 시작
    Zipkin 서버를 다운로드하고 시작하세요. http://localhost:9411을 방문하여 추적 정보를 확인하세요.
  6. 분산 추적 시스템 테스트
    주문 서비스 및 제품 서비스를 시작하고 주문 요청을 보냅니다. 그런 다음 Zipkin 인터페이스에서 추적 정보를 확인하면 주문 서비스에서 제품 서비스로 주문 요청이 전달되고 요청 호출 경로, 서비스 간 시간 등의 정보가 표시되는 것을 확인할 수 있습니다.

결론:
이 기사에서는 Java를 사용하여 Spring Cloud Sleuth 기반의 분산 추적 시스템을 개발하는 방법을 소개합니다. Spring Cloud Sleuth와 Zipkin을 사용하면 분산 시스템에서 요청 호출 경로를 쉽게 추적하고 모니터링할 수 있습니다. 이 기사가 모든 사람이 분산 추적 시스템을 이해하고 적용하는 데 도움이 되기를 바랍니다.

위 내용은 Java를 사용하여 Spring Cloud Sleuth 기반 분산 추적 시스템을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.