一、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客户端
可以看到该页面则表示启动成功。
二、数据持久化
完成第一步后,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脚本运行
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客户端
在客户端上就可以展示项目中的调用记录和调用链路了。(不过界面还是有点差强人意的)。