SpringCloud+sleuth+zipkin实现项目的链路跟踪

一、ZipKin的安装

有三种安装方式,根据自己情况自行选择

1、从官网上直接获取jar包运行(服务器有外网)

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

  下载完成后用命令运行即可:

java -jar zipkin.jar

 2、获取源码然后反编译(需要对源码进行改造时)

1 git clone https://github.com/openzipkin/zipkin

2 cd zipkin

3 ./mvnw -DskipTests --also-make -pl zipkin-server clean install

4  java -jar ./zipkin-server/target/zipkin-server-*exec.jar

 不需要改造源码时,不建议使用,容易出现各种未知错误,我反正是没运行成功。

3、 从阿里云仓库获取jar包(服务器无外网)

网上获取jar包的链接已经失效,找了好久才找到这个方式:

  1、进入阿里云仓库

https://developer.aliyun.com/mvn/search

  2、搜索 zipkin-server

 找到自己需要的版本下载即可。

  3、下载后上传至服务器运行即可:   

java -jar zipkin.jar

浏览器打开zipkin客户端

http://服务器ip:9411/zipkin

 可以看到该页面则表示启动成功。

 二、数据持久化

完成第一步后,Zipkin已经可以使用,但是如果Zipkin服务器重启或者宕机,就会导致zipkin记录的链路调用信息丢失,所以需要将数据存储下来。当前zipkin支持Mysql、Elasticsearch、Cassandra这三种方式的存储。本文主要讲解mysql 的存储

1、安装mysql数据库

https://mp.csdn.net/mp_blog/creation/editor/118358109

见该文章的第4节。

2、登录mysql,创建数据库 zipkin

3、下载sql脚本运行

https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql

4、创建启动脚本(和jar包同级)

touch start-zipkin.sh 

vim start-zipkin.sh

然后写入以下命令:

nohup java -jar ./zipkin.jar --spring.config.additional-location=./zipkin-config.properties > ./nohup.out 2>&1 &

jar包的名字,替换为自己下载jar包的名称

5、创建配置文件(和jar包同级)

touch zipkin-config.properties

vim zipkin-config.properties

写入以下命令(根据自己实际情况修改)
# 数据库类型
STORAGE_TYPE=mysql
# 数据库ip地址
MYSQL_HOST=localhost
# 数据库端口
MYSQL_TCP_PORT=3306
# 数据库库名
MYSQL_DB=zipkin
# 数据库用户名
MYSQL_USER=root
# 数据库密码
MYSQL_PASS=123456

6、重新启动

使用start-zipkin.sh 脚本重新启动zipkin;

三、项目整合

1、依赖引入

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

也可以分开引入sleuth 和 zipkin

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

 2、yml配置文件

spring:
  application:
    name: test-zipkin
  sleuth:
    web:
      client:
        enabled: true
    sampler:
      probability: 0.5
  zipkin:
    base-url: http://ip:prot/

spring.sleuth.web.client.enabled = true  --> 开启zipkin

spring.sleuth.sampler.probability = 0.5  --> spring-cloud-sleuth收集信息是有一定的比率的,默认的采样率是0.1, 配置为0.5的话则 50% 的链路调用信息会被采集。根据项目需求进行选择。数值越大,对性能的影响则越大。

3、将所有需要采集信息的微服务进行配置然后启动。

四、客户端链路展示

重新进入zipkin客户端

 

 在客户端上就可以展示项目中的调用记录和调用链路了。(不过界面还是有点差强人意的)。

猜你喜欢

转载自blog.csdn.net/q5926167/article/details/120020579
今日推荐