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,改版后的。
评论 (0)