【第二十九章】 springboot + zipkin + mysql
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相关推荐
- 第二十九章:学校招生
第二十九章:学校招生 李丽质突然忘记了这一茬子了,这些人还都不会化学方程式,李丽质想到后世的化学教学方式,于是他便对着众人说道:"这我会举办一个化学学校的,专门教授你们化学知识的." ...
- 第二十九章 管理许可(二)
文章目录 第二十九章 管理许可(二) 激活许可证密钥 更新许可证密钥 许可证故障排除 Administrator Terminal Session Administrator Session on W ...
- 第二十九章 SQL函数 COALESCE
文章目录 第二十九章 SQL函数 COALESCE 大纲 描述 返回值的数据类型 比较NULL处理函数 示例 第二十九章 SQL函数 COALESCE 返回第一个非空表达式的值的函数. 大纲 COAL ...
- 第二十九章 使用系统监视器 - 应用程序监视器指标
文章目录 第二十九章 使用系统监视器 - 应用程序监视器指标 生成指标 查看指标数据 第二十九章 使用系统监视器 - 应用程序监视器指标 Application Monitor自带的系统监控类调用各种 ...
- 【正点原子FPGA连载】 第二十九章TFT LCD画板实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...
- 【软考软件评测师】第二十九章 可靠性可用性测试
[软考软件评测师]第二十九章 可靠性可用性测试 [软考软件评测师]第二十九章 可靠性可用性测试 [软考软件评测师]第二十九章 可靠性可用性测试 第一部分知识点集锦 1.可靠性测试 1)主要活动 2)考 ...
- 【正点原子STM32连载】 第二十九章 低功耗实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...
- 第二十九章 数论——中国剩余定理与线性同余方程组
第二十九章 数论--中国剩余定理与线性同余方程组 一.中国剩余定理 1.作用: 2.内容: 3.证明: (1)逆元的存在性 (2)验证定理的正确性 4.代码实现: (1)步骤: (2)问题: (3)代 ...
- 第二十九章 SQL命令 DISTINCT
文章目录 第二十九章 SQL命令 DISTINCT 大纲 参数 描述 DISTINCT和ORDER BY DISTINCT和GROUP BY 字母大小写与DISTINCT优化 DISTINCT的其他用 ...
最新文章
- 数据库 大数据访问及分区分块优化方案
- 谷歌AI智商达苹果Siri两倍 但不及6岁儿童
- RedHat 系列 Linux 安装后,建立嵌入式开发环境
- 拉格朗日对偶性和似然函数
- [翻译] ASP.NET Core 2.2 正式版发布
- python tkinter 背景色改变不了_python – 在Tkinter中动态更改小部件背景颜色
- rabbitmq的安装全过程
- MyCat分布式数据库集群架构工作笔记0007---Mycat登录
- 厨房手工工具行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- s3c6410 RTC driver——读取实时时间信息 LDD3 ELDD 学习笔记
- 在一台2010年的老电脑上安装黑群辉dsm5.2并完成外网访问与洗白操作
- Win7 FTP搭建
- 计算机网络——滑动窗口协议的窗口大小
- 哲学思考之否定之否定规律
- 新人学习opencv图像处理的笔记,一:c++操作图像放大
- Mac ZeroTire 的重启方式
- 真牛!如何才能更容易拿到大厂Offer?挥泪整理面经
- 什么是 CSS 预处理器/后处理器?
- Bootstrap3 与Bootstrap4垂直水平居中
- [项目管理]工业工程理论在软件项目中的实践
热门文章
- 02-NLP-04基于统计的翻译系统-03-短语翻译表构造——短语抽取
- 序列化反序列化--Xstream的使用
- 华景机器人怎么控制_【扫地机器人选购】支持华为hilink智能家居联动/支持华为小艺语音控制的扫地机器人...
- 若依如何调整首页左侧菜单栏宽度
- Spring RCE 漏洞 CVE-2022-22965 的终极解决方案
- java获取大乐透开奖_java生成大乐透中奖号码
- 深入理解python.md_从python角度,理解进程,线程,协程.md-Go语言中文社区
- Android5.1自定义闹钟铃声,Android 设置来电铃声、通知铃声、闹钟铃声中的坑
- oracle中col 的用法,Oracle中的SUM用法讲解,
- Tree UVA - 548(二叉树递归遍历)