ホームページ  >  記事  >  Java  >  Java を使用して Spring Cloud Sleuth に基づく分散トレーシング システムを開発する方法

Java を使用して Spring Cloud Sleuth に基づく分散トレーシング システムを開発する方法

WBOY
WBOYオリジナル
2023-09-20 12:33:091289ブラウズ

如何使用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 を使用して単純な分散システムを作成する
    最初に、複数のマイクロサービスを含むシステムを作成する必要があります。 。この例では、Order Service と Product Service という 2 つのマイクロサービスを作成します。 Order Service は注文リクエストを受信し、Product Service を呼び出して製品在庫操作を実行します。
  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. コードでトレースを使用する
    注文サービスと製品サービスのコードで、トレース オブジェクトをトラッキングに使用します。リクエスト。呼び出しチェーンの先頭で、新しいスパンを作成し、トレース 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 インターフェイスで追跡情報を確認すると、注文リクエストが Order Service から Product Service に渡され、リクエストのコール パスやサービス間の時間などの情報が表示されていることがわかります。

結論:
この記事では、Java を使用して Spring Cloud Sleuth に基づく分散トレース システムを開発する方法を紹介します。 Spring Cloud Sleuth と Zipkin を使用すると、分散システム内のリクエスト呼び出しパスを簡単に追跡および監視できます。この記事が、皆さんが分散トレーシング システムを理解し、応用できるようになれば幸いです。

以上がJava を使用して Spring Cloud Sleuth に基づく分散トレーシング システムを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。