Spring Cloud Sleuth集成Zipkin调用链路追踪

本文介绍如何使用SpringCloud Sleuth和Zipkin进行微服务调用链路追踪,包括服务端和客户端的配置方法,特别关注使用RabbitMQ替代HTTP收集链路信息的配置细节。

调用链路追踪

微服务调用链路追踪,使用的是Spring Cloud Sleuth,而Spring Cloud Sleuth又借鉴了很多Dapper, Zipkin和HTrace相关的东西。

对于客户端和服务端的集成方案,目录如下

1.Zipkin服务端配置

不需要自己手写工程,直接使用官方提供的jar包即可,不建议自己手动搭建。然后启动时添加各种配置参数即可。

其中文件zipkin-server-shared.yml是官方提供的配置文件,可参考里面的参数进行配置

1.1. Jar包下载

不建议服务端自己手写代码搭建,自从Spring Boot 2.x开始,官方修改了大量相关代码。
建议直接使用官方提供的jar包,然后修改配置即可。

Zipkin仓库在GitHub地址 https://github.com/openzipkin/zipkin.

其GitHub仓库文档中提供如下方式进行jar包下载

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

实际下载的路径是maven的官方仓库地址里面 https://repo1.maven.org/maven2/io/zipkin/zipkin-server

我们实际使用的是如下jar包地址:https://repo1.maven.org/maven2/io/zipkin/zipkin-server/2.19.2/zipkin-server-2.19.2-exec.jar

1.2. 相关配置
  • 2.1 Zipkin版本2.19.2

https://repo1.maven.org/maven2/io/zipkin/zipkin-server/2.19.2/zipkin-server-2.19.2-exec.jar

  • 2.2 默认端口9411

  • 2.3 使用RabbitMQ代替HTTP

  • 2.4 源代码查看配置

1.3. 启动脚本

默认端口:

  • 常规启动

java -jar zipkin.jar

  • 端口 + RabbitMQ启动

java -jar zipkin.jar --server.port=8080

1.4. Jenkins发布脚本配置

具体工程启动时可配置参数见文件 zipkin-server-shared.yml

开发环境Jenkins配置脚本如下,增加了RabbitMQ配置

nohup java -jar zipkin-server-2.19.2-exec.jar --server.port=9411--zipkin.collector.rabbitmq.addresses=localhost --zipkin.collector.rabbitmq.username=dev --zipkin.collector.rabbitmq.password=123456 --zipkin.collector.rabbitmq.virtual-host=dev >/dev/null &

2.Zipkin客户端配置

客户端配置比较简单,对于具体的微服务业务应用,需要添加如下依赖

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

然后如果是使用HTTP收集链路,则添加配置

spring.zipkin.base-url=http://localhost:9411
spring.sleuth.sampler.probability=1.0

但是我们自己的工程已经都集成了RabbitMQ,因此Zipkin会直接使用RabbitMQ进行链路信息收集
则不要配置spring.zipkin.base-url=http://localhost:9411,只要配置如下即可

spring.sleuth.sampler.probability=1.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值