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