Zipkin 数据持久化|学习笔记

简介: 快速学习 Zipkin 数据持久化

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈(知识精讲+项目实战)第三阶段Zipkin 数据持久化】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/685/detail/11901


Zipkin 数据持久化


内容介绍

一、简介

二、使用 mysql 实现数据持久化

三、使用 elasticsearch 实现数据持久化


一、简介

Zipkin Server 默认会将链路追踪数据信息保存到内存,当 Zipkin Server 重新启动时,数据会消失。

现在试验一下:

停掉 Zipkin Server,重新启动,再刷新。

image.png

发现数据都丢失了。

由此可见这种方式不适合生产环境。必须保存在一个更加安全的地方。Zipkin 支持将追踪数据持久化到 mysql 数据库或 elasticsearch 中。


二、使用 mysql 实现数据持久化

1.创建 mysql 数据环境

CREATE TABLE IF NOT EXISTS zipkin_spans (

trace_id_high" BIGINT NOT NULL DEFAULT O COMMENT ;

If non zero, this means the trace uses 128 bit tracelds insteadof 64 bit;,

"trace_id`BIGINT NOT NULL,

"id"BIGINT NOT NULL,

"name’VARCHAR(255) NOT NULL,

parent_id`BIGINT,

"debug’BIT(1),

"start_ts; BIGINT COMMENT ;Span.timestamp(): epoch micros used for endTs query and to implement TTL"duration"BIGINT COMMENT ;

Span.duration(): micros used for minDuration and maxDuration query

)ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

getTraces/ByIds;

ALTER TABLE zipkin_annotations ADD INDEX(`endpoint_service_name`) COMMENT ;for getTraces and getServiceNames

ALTER TABLE zipkin_annotations ADD INDEX("a_type`) COMMENT ;for getTraces;

ALTER TABLE zipkin_annotations ADD INDEX(`a_key`) COMMENT ;for getTraces;

ALTER TABLE zipkin_annotations ADD INDEX(`trace_id`, "span_id`, `a_key;) COMMENT ;for dependencies jobCREATE TABLE IF NOT EXISTS zipkin_dependencies (

"day`DATE NOT NULL,

parent"VARCHAR(255) NOT NULL,

child`VARCHAR(255) NOT NULL,

call_count’BIGINT

)ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;

ALTER TABLE zipkin_dependencies ADD UNIQUE KEY("day, "parent", child");

这是官方提供的,然后创建一个新的数据库,执行一下。执行完毕没有错误即可。

2.在启动 ZipKin Server 的时候,指定数据保存的 mysql 的信息

java -jar zipkin-server-2.12.9-exec.jar --

STORAGE_TYPE=mysq1 --MYSQL_HOST=127.0.0.1 --MYSQL_TCP_PORT=3306--MYSQL_DB=zipkin --

MYSQL_USER=root --MYSQL_PASS=root

重新启动,找到 Zipkin Server 停掉,直接运行。

启动完毕再来访问两次服务,这时刷新就能看到两条链路追踪数据,来到数据库会发现已经有数据被保存了,此时再将 Zipkin Server 停掉,刷新,服务找不到,所以再来刷新启动。

image.png

此时发现链路追踪数据依然存在了。


三、使用 elasticsearch 实现数据持久化

1.下载 elasticsearch

下载地址:

https://www.elastic.co/cn/downloads/past-releases/elasticsea

进入这个地址选择对应平台进行下载。

2.启动 elasticsearch

image.png

进行解压,启动 elasticsearch,来到b目录,双击启动。

等他启动完毕,需要重新启动 Zipkin Server

然后使用 elasticsearch 进行路径储存,接下来再把 Zipkin Server 停掉,为了避免数据库对他有影响,直接把数据库删掉,这样就能抛弃掉影响,找到删除数据库,进行删除。此时启动 Zipkin Server。

3.在启动 ZipKin Server 的时候,指定数据保存的 elasticsearch 的信息

启动命令:

java -jar zipkin-serve -2.12.9-enec.jar --STORACE

_TYPE=elasticsearch --ES-HOST-localhast :9200

指定 elasticsearch 访问路径,访问 Zipkin 发现没有数据,刷新一次,有数据后停掉 Zipkin Server,发现失效。

再次启动,刷新,会发现数据依然存在,此时说明 elasticsearch 生效。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
开发者 Python
|
JSON JavaScript 测试技术
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
【10月更文挑战第9天】使用Docker部署PPTist在线演示文稿应用
623 2
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
|
存储 消息中间件 Java
【分布式链路追踪技术】sleuth+zipkin
【分布式链路追踪技术】sleuth+zipkin
259 2
|
敏捷开发 监控 算法
软件开发方法
软件开发方法
|
消息中间件 存储 监控
Spring Cloud Sleuth 全链路日志跟踪解决方案(强烈推荐)
Spring Cloud Sleuth 全链路日志跟踪解决方案(强烈推荐)
|
Linux C++
vscode中配置cmake及debug使用
vscode中配置cmake及debug使用
2407 0
|
存储 SpringCloudAlibaba 监控
07、SpringCloud之链路追踪sleuth集成zipkin学习笔记
07、SpringCloud之链路追踪sleuth集成zipkin学习笔记
07、SpringCloud之链路追踪sleuth集成zipkin学习笔记
|
存储 自然语言处理 前端开发
react中的useContext的介绍?【看这一篇就够了】
react中的useContext的介绍?【看这一篇就够了】
305 0
|
缓存 算法 JavaScript
提高Java程序性能!了解可达性分析算法、强软弱虚引用和三色标记GC的过程,避免不可达对象阻碍程序性能!
提高Java程序性能!了解可达性分析算法、强软弱虚引用和三色标记GC的过程,避免不可达对象阻碍程序性能!
431 0
|
SQL 搜索推荐 关系型数据库
淘东电商项目(41) -利用Logstash自动同步数据库内容到ES(超详细)
淘东电商项目(41) -利用Logstash自动同步数据库内容到ES(超详细)
524 0