使用 zipkin 做分布式链路监控
介绍
- Zipkin 为一个分布式的调用链跟踪系统 (distributed tracing system) , 设计来源于 google dapper paper
- 官方网站
快速入门
- 安装方式一:使用 zipkin 官方提供的 jar 启动服务
zipkin 官方提供了一个现成的使用 springboot 写的 zipkin 服务端,客户端的链路监控报告可以通过多种方式(下文会讲解具体的方式)向服务端发送报告。
系统需要安装 java8
-
配置详解
查看源码可知其有 4 种持久化方式,本文选择使用最熟悉的 mysql 持久化链路调用信息。
首先建立数据库:
默认情况下 zipkin 运行时数据保存在内存中,重启数据会丢失
数据库脚本下载
查看与 mysql storage 相关的配置
1 |
|
所以,我们使用 mysql 作为持久化策略,启动服务端的脚本也就有了
1 | java -server -jar zipkin-server-1.26.0-exec.jar --zipkin.storage.type=mysql --zipkin.storage.mysql.host=localhost --zipkin.storage.mysql.port=3306 --zipkin.storage.mysql.username=root --zipkin.storage.mysql.password=root --zipkin.storage.mysql.db=zipkin |
- 安装方式二
springcloud 官方按照传输方式分成了三种启动服务端的方式:Sleuth with Zipkin via HTTP,Sleuth with Zipkin via Spring Cloud Stream,Spring Cloud Sleuth Stream Zipkin Collector。只需要添加相应的依赖,之后配置相应的注解,如@EnableZipkinStreamServer
即可。具体配置参考 Spring Cloud 官方文档
项目中,我们使用第一种作为服务端的启动方式,使用 mysql 作为持久化方案