MySQL存储设置
介绍
Zipkin默认使用内存存储追踪数据,这在开发环境中很方便,但生产环境需要持久化存储。MySQL是一个流行的关系型数据库,可以作为Zipkin的后端存储方案。本节将详细介绍如何配置Zipkin使用MySQL 存储追踪数据。
备注
使用MySQL存储前,请确保已安装:
- Java 8+ 运行时环境
- MySQL 5.7+ 数据库
- Zipkin Server
数据库准备
首先需要创建Zipkin专用的数据库和用户:
CREATE DATABASE zipkin;
CREATE USER 'zipkin'@'%' IDENTIFIED BY 'zipkin';
GRANT ALL PRIVILEGES ON zipkin.* TO 'zipkin'@'%';
FLUSH PRIVILEGES;
Zipkin的MySQL存储需要以下表结构:
CREATE TABLE IF NOT EXISTS zipkin_spans (
`trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
`trace_id` BIGINT NOT NULL,
`id` BIGINT NOT NULL,
`name` VARCHAR(255) NOT NULL,
`remote_service_name` VARCHAR(255),
`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',
PRIMARY KEY (`trace_id_high`, `trace_id`, `id`)
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
-- 其他表结构省略,完整SQL请参考Zipkin官方文档