Spring Coud Sleuth:分散要求リンク追跡


Spring Boot実戦エレクトビジネスプロジェクトmall(20 k+star)住所:https://github.com/macrozheng/mall
要約
Spring Cloud Sleuthは、分散システムにおいてサービス間呼び出しを追跡するツールであり、要求されたコールプロセスを直感的に示すことができ、ここではその使用法を詳細に紹介する。
Spring Coud Sleuth概要
私達のシステムがますます巨大になるにつれて、各サービス間の呼び出し関係もますます複雑になりました。クライアントが一つの要求を開始すると、この要求は複数のサービスを経て、最終的に結果を返します。経過した各サービスは遅延またはエラーが発生し、要求が失敗する可能性があります。この時、私たちはリンクトラッキングツールに助けを求めて、呼び出しを要求するサービスリンクを整理して、問題を解決する必要があります。
サービスに要求リンクの追跡を追加する
私たちはuser-serviceとribron-serviceのサービスを通じてこの機能をデモンストレーションします。ここでribron-serviceのインターフェースを呼び出すと、ribron-serviceはRestTemplateを通じてuser-serviceの提供するインターフェースを呼び出します。
  • は、まず、user-serviceとribron-serviceに、要求リンク追跡機能のサポートを追加する。
  • は、user-serviceとribron-serviceに関連する依存性を追加する:
  • 
        org.springframework.cloud
        spring-cloud-starter-zipkin
    
  • appration.ymlファイルを修正し、収集ログのzipkin-serverアクセスアドレスを設定します。
  • spring:
      zipkin:
        base-url: http://localhost:9411
      sleuth:
        sampler:
          probability: 0.1 #  Sleuth       
    Zipkin取得と分析ログの整合
    Zipkinは、Spring Cloud Sleuthにおいて生成された要求リンク追跡ログを取得し分析するためにTwitterのオープンソースアイテムであり、ウェブインターフェースを提供して、要求リンク追跡情報を直感的に閲覧することを助けてくれます。
  • Spring Boot 2.0以上のバージョンはすでに自分でzipkin-serverを構築する必要がなくて、私達はこの住所からzipkin-serverをダウンロードすることができます。https://repo1.maven.org/maven...
  • ダウンロード完了後、以下のコマンドでzipkin-serverを実行します。
  • java -jar zipkin-server-2.12.9-exec.jar
  • Zipkinページアクセスアドレス:http://localhost:9411
  • eurka-severを起動します。ribbon-service、user-service:
  • マルチ呼び出し(Sleuthはサンプリング収集)ribron-serviceのインターフェースhttp://localhost:8301/user/1 呼び出しが完了したら、Zipkinトップページを見てください。リンク追跡を要請しました。
  • クリックして詳細を見ると、リンクの呼び出しを要求し、各サービスを通じた時間の消費が直感的に見られます。
    Elasticsearchを使ってトレース情報を保存します。
    私たちはzipkin-serverを再起動すると、先ほど記憶していた追跡情報が全部なくなりました。メモリに保存されているものであることが分かります。時々、私たちはすべての情報を保存しておく必要があります。ここではElasticsearchに保存することを例にして、この機能をデモンストレーションします。
    Elasticsearchのインストール
  • Elasticsearch 6.2.2のzipパッケージをダウンロードし、指定されたディレクトリに解凍して、住所をダウンロードします。https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-2-2
  • BInディレクトリのelasticsearch.batを実行し、Elasticsearch
  • を起動する。
    起動パラメータを変更してElasticsearchに情報を格納します。
  • 次のコマンドで実行すれば、追跡情報をElasticsearchに保存できます。再起動しても失われません。
  • # STORAGE_TYPE:       ES_HOSTS:  ES     
    java -jar zipkin-server-2.12.9-exec.jar --STORAGE_TYPE=elasticsearch --ES_HOSTS=localhost:9200 
  • 以降は、user-serviceとribron-serviceを再起動してから有効になります。再起動後、何度もribon-serviceのインターフェースを呼び出します。http://localhost:8301/user/1;
  • Elasticsearchの可視化ツールKibanaがインストールされていると、トラッキング情報が格納されていることが分かります。
    詳細起動パラメータ参照
    https://github.com/openzipkin...
    使用したモジュール
    springcloud-learning
    ├── eureka-server -- eureka    
    ├── user-service --   User  CRUD     
    └── ribbon-service -- ribbon        
    プロジェクトのソースアドレス
    https://github.com/macrozheng/springcloud-learning
    公衆番号
    mallプロジェクトの全コース学習教程の連載中、公衆番号の第一時間取得に注目しています。