Spring Cloud笔记-Spring Cloud Sleuth分布式请求链路跟踪(十六)

1.概述

在微服务框架中,一个客户端请求,从发起到后端系统中,会经历多个不同的微服务结点的调用,每一个请求都会形成一条复杂的分布式调用链路,链路中任何一个服务出现故障或延时都会导致整个请求最终的失败。

Spring Cloud Sleuth提供了一套完整的服务跟踪解决方案,兼容支持Zipkin。

2.搭建链路监控步骤

1.Zipkin

点击这里,下载zipkin-server-2.12.9-exec.jar,使用java -jar zipkin-server-2.12.9-exec.jar命令启动Zipkin。访问http://localhost:9411/zipkin/查看管理后台。Spring Cloud笔记-Spring Cloud Sleuth分布式请求链路跟踪(十六)_第1张图片

上图可以看到一个请求链路中,通过Trace Id作为唯一标识,通过Span Id作为请求信息,各个Span通过Parent Id关联起来。

 

2.服务提供者

这里使用cloud-provider-payment8001模块,修改pom.xml,加入spring-cloud-starter-zipkin坐标。


    org.springframework.cloud
    spring-cloud-starter-zipkin

修改application.yml,是spring下加入zipkin和sleuth。

spring:
  application:
    name: cloud-payment-service # 应用名称
  zipkin:
    base-url: http://localhost:9411 # zipkin监控后台地址
  sleuth:
    sampler:
      probability: 1 # 采样率介于0,1之间,1表示全部采集
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource # 数据源类型
    driver-class-name: com.mysql.cj.jdbc.Driver # 数据库驱动
    url: jdbc:mysql://localhost:3306/db2019?useUnicode=true&charcaterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai # 数据库连接
    username: root # 数据库用户名
    password: root # 数据库密码

在PaymentController中,加入一个映射用于测试。

@GetMapping("/payment/zipkin")
public String paymentZipkin() {
    return "this is zipkin feedback";
}

3.服务消费者

这里使用cloud-consumer-order80模块,修改pom.xml,同上加入spring-cloud-starter-zipkin坐标,application.yml和cloud-provider-payment8001修改方法一样。在OrderController中添加一个映射用于测试。

@GetMapping(value = "/consumer/payment/zipkin")
public String paymentZipkin() {
    return restTemplate.getForObject(PAYMENT_URL + "/payment/zipkin/", String.class);
}

4.启动服务,进行测试

依次启动Eureka7001,Payment8001,Order80模块,浏览器请求http://localhost//consumer/payment/zipkin,之后返回Zipkin的管理后台,点击“查找”按钮,就可以看到刚刚请求,点进去请求,可以看到调用链路,依赖关系,调用耗时等等信息。

 

你可能感兴趣的:(Spring,Cloud)