zipkin的数据存储可以存在4个地方:

  • 内存(仅用于测试,数据不会持久化,zipkin-server关掉,数据就没有了)

    • 这也是之前使用的
  • mysql
    • 可能是最熟悉的方式
  • es
  • Cassandra

一、代码(基于 第二十八章 springboot + zipkin(brave定制-AsyncHttpClient))

1、pom.xml

         <dependency><groupId>io.zipkin.brave</groupId><artifactId>brave-mysql</artifactId><version>3.9.0</version></dependency>

2、ZipkinConfig添加如下

     @Beanpublic MySQLStatementInterceptorManagementBean mySQLStatementInterceptorManagementBean(Brave brave) {return new MySQLStatementInterceptorManagementBean(brave.clientTracer());}

二、数据库

1、建库

  • 自己创建库(eg.mytestdb)就好

2、建表

  • 在mytestdb中执行zipkin准备好的脚本mysql.sql来创建三张表以及各个索引。

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

或者直接将整个zipkin项目克隆下来,再进去看内容。

mysql.sql内容如下:

CREATE TABLE IF NOT EXISTS zipkin_spans (`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;ALTER TABLE zipkin_spans ADD UNIQUE KEY(`trace_id`, `id`) COMMENT 'ignore insert on duplicate';
ALTER TABLE zipkin_spans ADD INDEX(`trace_id`, `id`) COMMENT 'for joining with zipkin_annotations';
ALTER TABLE zipkin_spans ADD INDEX(`trace_id`) COMMENT 'for getTracesByIds';
ALTER TABLE zipkin_spans ADD INDEX(`name`) COMMENT 'for getTraces and getSpanNames';
ALTER TABLE zipkin_spans ADD INDEX(`start_ts`) COMMENT 'for getTraces ordering and range';CREATE TABLE IF NOT EXISTS zipkin_annotations (`trace_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.trace_id',`span_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.id',`a_key` VARCHAR(255) NOT NULL COMMENT 'BinaryAnnotation.key or Annotation.value if type == -1',`a_value` BLOB COMMENT 'BinaryAnnotation.value(), which must be smaller than 64KB',`a_type` INT NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation',`a_timestamp` BIGINT COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp',`endpoint_ipv4` INT COMMENT 'Null when Binary/Annotation.endpoint is null',`endpoint_ipv6` BINARY(16) COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address',`endpoint_port` SMALLINT COMMENT 'Null when Binary/Annotation.endpoint is null',`endpoint_service_name` VARCHAR(255) COMMENT 'Null when Binary/Annotation.endpoint is null'
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;ALTER TABLE zipkin_annotations ADD UNIQUE KEY(`trace_id`, `span_id`, `a_key`, `a_timestamp`) COMMENT 'Ignore insert on duplicate';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id`, `span_id`) COMMENT 'for joining with zipkin_spans';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id`) COMMENT 'for 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';CREATE 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;ALTER TABLE zipkin_dependencies ADD UNIQUE KEY(`day`, `parent`, `child`);

执行脚本之后,数据库出现三张表,如下:

三、启动命令

  • STORAGE_TYPE=mysql MYSQL_HOST=192.192.192.192 MYSQL_TCP_PORT=3306 MYSQL_DB=mytestdb MYSQL_USER=root MYSQL_PASS=123456 nohup java -jar zipkin-server-1.5.1-exec.jar &

    • STORAGE_TYPE:存储类型,这里是mysql
    • MYSQL_HOST和MYSQL_TCP_PORT:创建connection
    • MYSQL_USER和MYSQL_PASS:用户名和密码

四、测试

启动4个service,然后swagger测试,最后查看zipkin和数据库表即可。

【第二十九章】 springboot + zipkin + mysql相关推荐

  1. 第二十九章:学校招生

    第二十九章:学校招生 李丽质突然忘记了这一茬子了,这些人还都不会化学方程式,李丽质想到后世的化学教学方式,于是他便对着众人说道:"这我会举办一个化学学校的,专门教授你们化学知识的." ...

  2. 第二十九章 管理许可(二)

    文章目录 第二十九章 管理许可(二) 激活许可证密钥 更新许可证密钥 许可证故障排除 Administrator Terminal Session Administrator Session on W ...

  3. 第二十九章 SQL函数 COALESCE

    文章目录 第二十九章 SQL函数 COALESCE 大纲 描述 返回值的数据类型 比较NULL处理函数 示例 第二十九章 SQL函数 COALESCE 返回第一个非空表达式的值的函数. 大纲 COAL ...

  4. 第二十九章 使用系统监视器 - 应用程序监视器指标

    文章目录 第二十九章 使用系统监视器 - 应用程序监视器指标 生成指标 查看指标数据 第二十九章 使用系统监视器 - 应用程序监视器指标 Application Monitor自带的系统监控类调用各种 ...

  5. 【正点原子FPGA连载】 第二十九章TFT LCD画板实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  6. 【软考软件评测师】第二十九章 可靠性可用性测试

    [软考软件评测师]第二十九章 可靠性可用性测试 [软考软件评测师]第二十九章 可靠性可用性测试 [软考软件评测师]第二十九章 可靠性可用性测试 第一部分知识点集锦 1.可靠性测试 1)主要活动 2)考 ...

  7. 【正点原子STM32连载】 第二十九章 低功耗实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  8. 第二十九章 数论——中国剩余定理与线性同余方程组

    第二十九章 数论--中国剩余定理与线性同余方程组 一.中国剩余定理 1.作用: 2.内容: 3.证明: (1)逆元的存在性 (2)验证定理的正确性 4.代码实现: (1)步骤: (2)问题: (3)代 ...

  9. 第二十九章 SQL命令 DISTINCT

    文章目录 第二十九章 SQL命令 DISTINCT 大纲 参数 描述 DISTINCT和ORDER BY DISTINCT和GROUP BY 字母大小写与DISTINCT优化 DISTINCT的其他用 ...

最新文章

  1. 数据库 大数据访问及分区分块优化方案
  2. 谷歌AI智商达苹果Siri两倍 但不及6岁儿童
  3. RedHat 系列 Linux 安装后,建立嵌入式开发环境
  4. 拉格朗日对偶性和似然函数
  5. [翻译] ASP.NET Core 2.2 正式版发布
  6. python tkinter 背景色改变不了_python – 在Tkinter中动态更改小部件背景颜色
  7. rabbitmq的安装全过程
  8. MyCat分布式数据库集群架构工作笔记0007---Mycat登录
  9. 厨房手工工具行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. s3c6410 RTC driver——读取实时时间信息 LDD3 ELDD 学习笔记
  11. 在一台2010年的老电脑上安装黑群辉dsm5.2并完成外网访问与洗白操作
  12. Win7 FTP搭建
  13. 计算机网络——滑动窗口协议的窗口大小
  14. 哲学思考之否定之否定规律
  15. 新人学习opencv图像处理的笔记,一:c++操作图像放大
  16. Mac ZeroTire 的重启方式
  17. 真牛!如何才能更容易拿到大厂Offer?挥泪整理面经
  18. 什么是 CSS 预处理器/后处理器?
  19. Bootstrap3 与Bootstrap4垂直水平居中
  20. [项目管理]工业工程理论在软件项目中的实践

热门文章

  1. 02-NLP-04基于统计的翻译系统-03-短语翻译表构造——短语抽取
  2. 序列化反序列化--Xstream的使用
  3. 华景机器人怎么控制_【扫地机器人选购】支持华为hilink智能家居联动/支持华为小艺语音控制的扫地机器人...
  4. 若依如何调整首页左侧菜单栏宽度
  5. Spring RCE 漏洞 CVE-2022-22965 的终极解决方案
  6. java获取大乐透开奖_java生成大乐透中奖号码
  7. 深入理解python.md_从python角度,理解进程,线程,协程.md-Go语言中文社区
  8. Android5.1自定义闹钟铃声,Android 设置来电铃声、通知铃声、闹钟铃声中的坑
  9. oracle中col 的用法,Oracle中的SUM用法讲解,
  10. Tree UVA - 548(二叉树递归遍历)