SpringBoot整合Sleuth+Zipkin 服务链路追踪

admin
2022-03-14 / 0 评论 / 117 阅读 / 正在检测是否收录...

SpringBoot整合Sleuth+Zipkin 服务链路追踪

一、整合 Sleu

1、服务提供者与消费者导入依赖

<!--整合 Sleut:服务提供者与消费者导入依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
    <version>3.1.1</version>
</dependency>

2、打开 debug 日志

logging:
  level:
    org.springframework.cloud.openfeign: debug
    org.springframework.cloud.sleuth: debug

3、发起一次远程调用,观察控制台

DEBUG [user-service,541450f08573fff5,541450f08573fff5,false]

user-service:服务名

541450f08573fff5:是 TranceId,一条链路中,只有一个 TranceId

541450f08573fff5:是 spanId,链路中的基本工作单元 id

false:表示是否将数据输出到其他服务,true 则会把信息输出到其他可视化的服务上观察

二、整合 zipkin 可视化观察

1、docker 安装 zipkin 服务器

docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin

设置随docker启动

docker update --restart=always zipkin

2、导入依赖

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

因为spring-cloud-starter-zipkin中引入了spring-cloud-starter-sleuth,因此上面的spring-cloud-starter-sleuth可以不用引入。

3、添加 zipkin 相关配置

spring:
  application:
    name: ifamily-booking
  zipkin:
  base-url: http://127.0.0.1:9411/ # zipkin 服务器的地址
  # 关闭服务发现,否则 Spring Cloud 会把 zipkin 的 url 当做服务名称
  discoveryClientEnabled: false
  sender:
  type: web # 设置使用 http 的方式传输数据
  sleuth:
  sampler:
  probability: 1 # 设置抽样采集率为 100%,默认为 0.1,即 10%

4、查看

通过http://127.0.0.1:9411即可查看链路追踪信息。

三、持久化链路追踪数据到ES

启动命令

docker run --env STORAGE_TYPE=elasticsearch --env ES_HOSTS=192.168.56.10:9200 openzipkin/zipkin-dependencies

注意:这个是openzipkin/zipkin-dependencies,改版后的。

7

评论 (0)

取消