SpringCloud-Sleuth链路追踪

一.链路追踪概念

有时候项目中微服务数量很多,服务之间互相调用,当出错时,查找是哪个服务出现错误十分困难,所以引入了链路追踪技术,来查找服务之间的调用链

服务名称:执行业务的服务名称

全局请求ID: 在所有服务完成一项任务时,这项任务在整个项目中的唯一ID

工作单元: 服务发起一次远程调用,就是一个工作单元

请求时间: 每次工作单元执行的时间

二.引入Sleuth依赖

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

在微服务中修改项目的日志级别:

 logging:
    level:
     org.springframework.web.servlet.DispatcherServlet: debug #设置日志级别,以便更好的看到链路追踪

注意:logging前面要空两格,否则会报错

调用服务,查看日志

这里是user-service调用book-service的服务

user-service的日志:

2023-09-13 18:18:15.610  INFO [user-service,b3c7550997af5674,b3c7550997af5674,true] 13100 --- [nio-8080-exec-1] c.netflix.config.ChainedDynamicProperty  : Flipping property: book-service.ribbon.ActiveConnectionsLimit to use NEXT property: 

book-service的日志:

2023-09-13 18:18:15.818  INFO [book-service,b3c7550997af5674,a252b02a7c9d697b,true] 20144 --- [nio-8081-exec-1] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...

第一个是服务名称,第二个是全局ID,第三个是工作单元

但是这样查看非常麻烦,所以引入了可视化链路追踪zipkin

三.zipkin下载安装

1.zipkin官网: https://zipkin.io/pages/quickstart.html 

 ①、下载可执行 jar

# Linux
curl -sSL https://zipkin.io/quickstart.sh | bash -s
nohup java -jar zipkin.jar >> out.log &
# window
下载地址:https://search.maven.org/search?q=zipkin-server 注意需要下载 exec.jar
start /min java -jar zipkin-server-2.23.16-exec.jar # start /min 类似 Linux 的 nohup 命令

②、源码下载

# get the latest source
git clone https://github.com/openzipkin/zipkin
cd zipkin
# Build the server and also make its dependencies
./mvnw -DskipTests --also-make -pl zipkin-server clean install
# Run the server
java -jar ./zipkin-server/target/zipkin-server-*exec.jar

③、docker 启动

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

zipkin 默认端口号 9411,你可以在 zipkin 启动日志查看端口号 http://127.0.0.1:9411/zipkin/

java -jar 启动zipkin

a8c237d95e684bf785802c2a5415011b.png

 

2.引入zipkin客户端依赖

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

3.修改配置文件

 

  #链路追踪
  zipkin:
    base-url: http://localhost:9411
    discovery-client-enabled: false
  sleuth:
    sampler:
      probability: 1 #采集率为100%

再次调用,查看控制台:

34d64a53642a447999f08eb7827dc7f6.png

f2a48d61832e46e09cf67046a0d0498e.png

 

可以清晰的看到服务的调用信息

四.消息队列收集链路追踪

用http采样,性能不好,用RabbitMQ来进行数据采集,提高系统的性能

1.在每个服务中引入RabbitMQ依赖

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2.修改配置文件

zipkin:
  sender:
    type: rabbit
rabbitmq:
  addresses: localhost:5672
  username: jjh123
  password: 123456
sleuth:
  sampler:
    probability: 1

3.修改zipkin的启动方式

java -DRABBIT_ADDRESSES=localhost:5672 -DRABBIT_USER=jjh123 -DRABBIT_PASSWORD=123456 -jar zipkin.jar

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值