春Cloud--リンク追跡スルース

パートI:春の雲- Configuration Centerのコンフィグ

1.なぜあなたは春のクラウドスルースが必要なのか

マイクロサービスアーキテクチャは、ビジネス・サービス・ユニットによって、分散システムは、サービス単位の数を有する傾向がある分散アーキテクチャです。何かが間違っていると異常になった場合、サービス単位の大規模な数に起因して、ビジネスの複雑さは、見つけることは困難です。主で反射し、要求は、それは問題は見つけることが困難であると判断し、内部サービスのサービスの数、およびコールの複雑さを呼び出す必要があります。したがって、マイクロサービスアーキテクチャ、参加すると、各要求は論外、はっきりと見えている手順素早く位置決めを達成する方法を順に関与何のサービス終了にリクエストをフォローアップするために、分散リンクトラッキングを実装する必要があります。
大FAQマイクロサービスアーキテクチャーシステムのため要するに以下の通りである;マイクロサービス間の依存関係を明確にする方法、チェーン系列を呼び出す方法を、迅速に問題を突き止める方法オフ各サービス・インターフェースポイントの性能、トラフィックフローを追跡する方法処理。

2.春クラウドスルースプロフィール

ソースの公式ウェブサイトの利用規約翻訳:https://cloud.spring.io/spring-cloud-static/spring-cloud-sleuth/2.2.2.RELEASE/reference/html/#terminology
春クラウドスルースは春クラウドのための分散トレースを提供GoogleのDapperの、TwitterのZipkinとApache HTRACE設計から重く借りたソリューションは、初見スルース用語を取る、スルースは、Dapperのの用語を借りました。

  • スパン(スパン):仕事の基本単位。IDは64のスパンを識別する。IDに加えて、スパンはまた、そのようなspanID、説明、イベントのタイムスタンプ、注釈値のペア(ラベル)のような追加のデータを含む親ID等に及びます。スパンが開始した時刻情報の記録を停止する場合。初期スパンは「rootspan」と呼ばれ、トレースはスパンIDのIDと等しいです。
  • トレース(トレース):共有ツリー「rootspan」のセットがスパンtraceoのTracの組成物と呼ばれ、また一意すべての共有トレースIDトレースのスパンを識別する64ビットのIDを使用します
  • アノテーション(注釈):注釈はコア注釈を開始および終了要求を定義するために使用されているイベントの存在を記録するために使用されます。
    CS(顧客て送信クライアントが送信する):クライアントが開始要求は、注釈はスパンの開始について説明します。
    SR(サーバー受信したサーバは、受信):サーバーとは、プロセスの要求、それに準備をしなさい。あなたはCSのSRとタイムスタンプを引く場合は、ネットワーク遅延を得ることができます。C)
    サーバが送信され送るSS(サーバー)は:注釈は(要求処理が完了したことを示している場合、クライアントへの応答バック)。タイムスタンプは、SR SSを差し引いた場合は、時間を得ることができ、サーバは要求を処理するために必要な。
    CR(クライアント受信クライアントが受け取る):スパンエンド識別。クライアントは、サーバ側からの正常な応答を受け取ります。CRのタイムスタンプは、CSを差し引いた場合は、必要な時間は、クライアントから取得することができますに応じてサーバに要求を送信します

春クラウドスルースは、部品の種類10種類以上の:.非同期、Hystrix、メッセージング、追跡することができ WebSocketを、rxjava、スケジューリング、ウェブ(Spring MVCのコントローラ、サーブレット)、Webクライアント(春RestTemplate)、装う、Zuul :公式サイトHTTPS://をcloud.spring.io/spring-cloud-static/spring-cloud-sleuth/2.2.2.RELEASE/reference/html/#integrations
ここに画像を挿入説明
ここでは公式に、図のマイクロサービスコールチェーンの簡単な例です:
ここに画像を挿入説明

3.ビルドZIPkin Server環境

分散リンクトラッキングのための探偵はちょうど記録されたデータの一部、我々は人々が読むために、プロセスが必然的にあまりにも面倒になります持っているデータを、我々は一般的に、このようなデータにそれをZipkinサーバーの均一な処理を与えるようなので。

3. 1 Zipkinプロフィール

Zipkinは、Twitterのオープンソース会社が追跡システムに分散オープンソースであり、それは、データの収集、保管、検索、ショーを含め、遅延の問題マイクロサービスアーキテクチャを解決するために、定期的なデータ収集サービスに取り組んでいます。
UIは、例えば、開発者が容易にWebフロントエンドのデータ収集と分析を通じてできるように、各サービスは、システムを介して、要求を追跡し、どのくらい示し、関係を呼び出すことにより、Zipkinに応じて依存関係図を生成しますzipkin zipkinタイミングデータへの各サービスレポート、各ユーザのサービス要求処理時間などは、容易にボトルネックがシステム内に存在する監視することができます。
インメモリは、MySQL、カサンドラとElasticsearch:Zipkinプラグ可能なデータストレージを提供します。次のテストは、メモリー内に便利で直接的な方法を使用して格納され、生産がElasticsearch推奨しました。
公式サイトのアドレス:https://zipkin.io/
オープンソースアドレス(推奨アクセス):https://github.com/openzipkin/zipkin

3. 2サーバー構築された環境

zipkin2.7.xで後には二つの方法をお勧めしますので、ここで紹介し、公式バージョンまたはドッカーを使用するカスタム・サーバのニーズをサポートしていません。:サービスアクセスZipkin UI起動した後、HTTP:// YOUR_HOSTを:9411 / Zipkin /

3.公式バージョン2.1

これは、次の命令を実行するために、上記のJRE 8が必要です。

curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar
3.インストール2.2ドッカ

参照ボーエンのインストールと基本的な使用前にドッキングウィンドウ環境:(centos7-1804を使用して)要約ドッカー学習

docker run -d -p 9411:9411 openzipkin/zipkin
3. 2.3カスタムサーバーサービス

の導入に依存して、Mavenのプロジェクトを作成します。

		<dependency>
			<groupId>io.zipkin.java</groupId>
			<artifactId>zipkin-autoconfigure-ui</artifactId>
			<version>2.8.4</version>
		</dependency>
		<dependency>
			<groupId>io.zipkin.java</groupId>
			<artifactId>zipkin-server</artifactId>
			<version>2.8.4</version>
		</dependency>

コメントの起動クラスを追加します。

package com.qqxhb.zipkin;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import zipkin.server.internal.EnableZipkinServer;

/**
 * @author Administrator
 * @version 1.0
 **/
@EnableZipkinServer
@SpringBootApplication
public class ZIPkinApplication {
	public static void main(String[] args) throws Exception {
		SpringApplication.run(ZIPkinApplication.class, args);
	}
	
}

配置YML

server:
  port: 9411 
spring:
  application:
    name: springcloud-sleuth
management:
  metrics:
    web:
      server:
        autoTimeRequests: false

次のように打ち上げ成功インタフェースは次のとおりです。
ここに画像を挿入説明

4.スルースマイクロサービス統合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>

設定を追加YML

spring:
  application:
    name: service-provider-course
  zipkin:
    base-url: http://localhost:9411  #指定Zipkin server地址
  sleuth:
    sampler:
      probability: 1.0  #request采样的数量 默认是0.1 也即是10%  顾名思义 采取10%的请求数据  因为在分布式系统中,数据量可能会非常大,因此采样非常重要。我们示例数据少最好配置为1全采样     

スタートマイクロサービスとの通話

ここに画像を挿入説明
ここに画像を挿入説明

5. Zipkin Serverデータの永続化

:私達はちょうど、分散型コール情報がzipkinサーバにアップロードけど質問持っているリンクする方法を説明し
、私たちの分散データは、すべてがクリアリンク再起動zipkinを。zipkinサーバーのデフォルトのデータは、それらのメモリに格納されているため、サービスのメモリを再起動するときに自然にもクリア。
インメモリは、MySQL、カサンドラとElasticsearch:Zipkinプラグ可能なデータストレージを提供します。次のテストは、メモリー内に便利で直接的な方法を使用して格納され、生産がElasticsearch推奨しました。
:ZipkinとElasticsearchは、以前のブログ記事を参照してください。基本的な概念とElasticsearch上のエントリを統合し、フルテキスト検索-ElasticsearchドッカービルドElasticsearchのクラスタ統合Springboot
まず、私たちはzipkinサーバー内部に頼る紹介します:

		<dependency>
			<groupId>io.zipkin.java</groupId>
			<artifactId>zipkin-autoconfigure-storage-elasticsearch-http</artifactId>
			<version>2.3.1</version>
		</dependency>

サーバーとその後、次のように設定ファイルを変更する(Elasticsearchの構成を追加):

server:
  port: 9411 
spring:
  application:
    name: springcloud-sleuth
management:
  metrics:
    web:
      server:
        autoTimeRequests: false
zipkin:
  storage:
    type: elasticsearch
    elasticsearch:
      cluster: springcloud
      hosts: http://localhost:9200
      index: zipkin

今すぐ再起動ZIPkinコールチェーンのデータが失われることはありません場合でも、Zipkin ServerとにElasticsearchに格納されたデータを再起動してください。ソースアドレス:https://github.com/qqxhb/springcloud-demo

公開された118元の記事 ウォン称賛7 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_43792385/article/details/104712103