春クラウドチュートリアルシリーズ8:分散リンクトラッキング春クラウドスルース(F版)

入門

システムの分解能、リンク呼び出し要求の先端が長くなると、それは別のバックエンドサービスを複数呼び出します。要求は、位置決めの問題なので、そこに分散リンクトラッキングを容易にするために、または使用不能を遅くする場合。

要求TRACEIDとspanId、つ以上のTRACEID spanIdより含まリンクにおける分散リンクトラッキング増加
ようなフロントエンドオーダーシステムコール要求として、再度呼び出して注文システムインベントリシステム。

システムは、以下の順序(これはデフォルトの形式ではないとして、次の形式は、デフォルトのフォーマットは後述する、ように構成されてもよい)をログに記録します

[INFO][traceId=aaa][SpanId=123]

次のようにインベントリシステムログがあります

[INFO][traceId=aaa][SpanId=456]

リンク要求、異なるシステムで同じ値、複数spanIdをTRACEID、値が異なるシステムで異なっています。

分散リンクトラッキングは、Zipkinの簡潔かつ統合ここでは、達成するためにたくさん持っています

githubのアドレスします。https://github.com/erlieStar/spring-cloud-learning

Zipkinとの統合

zipkinサービスを作成します

春のブート2.xバージョンの後、公式のコンパイルにはお勧めしませんが、私たちの使用のためにコンパイルのjarパッケージを提供するために、開始を直接ダウンロードすることができます

curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar

HTTPで起動した後:// localhostを:9411 / zipkin
ここに画像を挿入説明

消費者サービスの作成

サンプルプロジェクト:消費者zipkin(春・クラウド探偵)

1.次のようにプロジェクトの設定があります

pom.xml

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

application.yaml

server:
  port: 8080

spring:
  zipkin:
    base-url: http://localhost:9411
  application:
    name: consumer-zipkin
  sleuth:
    sampler:
      probability: 1.0 # 采样比例,1.0表示全部采集

2.次のようにスタートクラスがあります

@Slf4j
@RestController
@SpringBootApplication
public class ConsumerZipkin {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerZipkin.class);
    }

    @Autowired
    private RestTemplate restTemplate;

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @GetMapping("hello")
    public String hello() {
        log.info("start invoke");
        return restTemplate.getForObject("http://localhost:8090/hello", String.class);
    }
}

プロデューサーサービスの作成

サンプルプロジェクト:プロデューサzipkin(春・クラウド探偵)

1.次のようにプロジェクトの設定があります

pom.xml

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

application.yaml

server:
  port: 8090

spring:
  zipkin:
    base-url: http://localhost:9411
  application:
    name: producer-zipkin
  sleuth:
    sampler:
      probability: 1.0 # 采样比例,1.0表示全部采集

2.次のようにスタートクラスがあります

@Slf4j
@RestController
@SpringBootApplication
public class ProducerZipkin {

    public static void main(String[] args) {
        SpringApplication.run(ProducerZipkin.class);
    }

    @RequestMapping("hello")
    public String hello() {
        log.info("new request");
        return "hi zipkin";
    }
}

呼び出し始まりました

访问にhttp:// localhost:8080 /ハロー

次のように呼び出しの間の関係を分析するzipkin
ここに画像を挿入説明
次のように消費者zikpin印刷ログがあります

INFO [consumer-zipkin,53836e18c9552b3f,53836e18c9552b3f,true] 6664 --- [nio-8080-exec-1] com.javashitang.ConsumerZipkin           : start invoke

プロデューサー-zipkinとして印刷ログ

INFO [producer-zipkin,53836e18c9552b3f,6eefb28892009df6,true] 20832 --- [nio-8090-exec-1] com.javashitang.ProducerZipkin           : new request

ログ形式を分析

[consumer-zipkin,53836e18c9552b3f,53836e18c9552b3f,true] 

最初の値:アプリケーション名
第二値:TRACEID
第3の値:spanId
第4の値:表示zipkinたい収集出力するかどうか、情報サービスと

TRACEIDを入力し、次のコールのリンクを分析
ここに画像を挿入説明

注意ようこそ

ここに画像を挿入説明

公開された385元の記事 ウォンの賞賛1471 ビュー90万+

おすすめ

転載: blog.csdn.net/zzti_erlie/article/details/104335926