一、前言
在上一篇文章中: SpringCloud Sleuth和Zipkin的一些基础概念以及简要原理,并且通过实战搭建了SpringCloud Sleuth和Zipkin服务链路追踪数据的传输、收集以及UI界面的查询和相关数据展示,前面也简单提到过Zipkin默认是将数据存放到内存当中的,这种默认方式并不适用于我们的生产环境,一来是比较浪费内存,二来是一旦Zipkin-Server服务重启,数据将全部丢失,本篇博客就实现将数据持久化到Mysql中。
二、zipkin数据存放方式
官方文档中介绍到Zipkin可以将数据保存到Cassandra、Elasticsearch、MySQL。国内关于Cassandra的资料较少,这里就暂且不采纳Cassandra。
三、如何持久化到MySQL
在SpringBoot2.0之前的版本,Zipkin-Server端由我们自己创建项目来搭建。可以比较灵活的选择数据持久化的配置,SpringBoot2.0之后的版本,Zipkin-Server端由官方提供,无需我们自己搭建,那么如何选择去配置将数据持久化到MySQL呢? 这是一个值得思考的问题:
1. 官方提供MySQL初始化脚本
2. 创建zipkin数据库
(1)、找到我们之前下载的zipkin-server端jar包,zipkin-server-2.12.9-exec.jar ,打开zipkin-server-shared.yml文件
(2)、打开这个文件,发现zipkin-server-2.12.9-exec.jar提供了Cassandra、Elasticsearch、MySQL的持久化配置,只需要填写对应的配置参数即可,而且数据库名称默认是取zipkin,这也就