SpringCloud Sleuth 分布式请求链路跟踪
一、原理
需要注意版本问题,有时候不成功是因为版本不兼容
二、sleuth和zipkin
1.下载sleuth和zipkin
sleuth: 下载地址https://search.maven.org/remote_content?g=io.zipkin&a=zipkin-server&v=LATEST&c=exec
zipkin: 下载地址
2.pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
3.application.yml
spring:
zipkin:
base-url: http://192.168.184.13:9411
sleuth:
sampler:
probability: 1
zuul:
enabled: false
4.启动zipkin
nohup java -jar zipkin.jar &
三、数据源
1、链路追踪集成消息中间件RabbitMQ
架构图
1.POM
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
</dependency>
2.配置文件
spring:
sleuth:
sampler:
probability: 1
zuul:
enabled: false
zipkin:
sender:
type: rabbit
rabbitmq:
host: 192.168.184.15
port: 5672
username: admin
password: admin
listener:
direct:
retry:
enabled: true
simple:
retry:
enabled: true
3.zipkin启动命令
java -jar zipkin.jar --zipkin.collector.rabbitmq.addresses=192.168.184.15 --zipkin.collector.rabbitmq.username=admin --zipkin.coector.rabbitmq.password=admin
4.运行效果
2、链路追踪持久化数据到ES
1.安装es
mkdir /elk
cd /elk
tar -zxvf elasticsearch-7.3.2.tar.gz
useradd es //为linux添加个es用户,es不支持root运行
chown -R es:es /elk/elasticsearch-7.3.2
cd elasticsearch-7.3.2
2.启动zipkin命令
java -jar zipkin.jar --STORAGE_TYPE=elasticsearch --ES_HOSTS=http://localhost:9200 --ES_HTTP_LOGGING=BASIC --zipkin.collector.raitmq.addresses=192.168.184.15 --zipkin.collector.rabbitmq.username=admin --zipkin.collector.rabbitmq.password=admin
3、持久化数据到Mysql
1.创建数据库&执行sql语句
2. 命令行启动设置Mysql
在启动zipkin
时,命令行输入mysql
的参数,官方提供命令模板如下:
java -jar zipkin-server-2.12.9-exec.jar
--zipkin.collector.rabbitmq.addresses=localhost
--zipkin.collector.rabbitmq.username=xxx
--zipkin.collector.rabbitmq.password=xxx
--STORAGE_TYPE=mysql
--MYSQL_HOST=127.0.0.1
--MYSQL_TCP_PORT=3306
--MYSQL_DB=zipkin
--MYSQL_USER=root
--MYSQL_PASS=root