时序数据库TDengine3.x部署
一、 概述
TDengine 是一款开源、高性能、云原生的时序数据库(Time Series Database, TSDB),专为物联网、车联网、工业互联网、金融、IT 运维监控等场景设计。
- 官方文档:https://docs.taosdata.com/
- 核心组件(容器内包含):
taosd: 数据库核心服务。taosAdapter: 提供 RESTful 和 WebSocket 接口。taosKeeper: 系统监控指标收集。taosExplorer: Web 管理控制台。
二、 单节点部署(快速体验)
1. 使用 Docker Compose 启动
创建 docker-compose.yml 文件:
1 | version: '3.9' |
启动服务:docker-compose up -d
2. 连接测试与基本操作
- 进入容器:
1
docker exec -it tdengine bash
- 生成测试数据(使用官方工具):此命令会在
1
taosBenchmark -y
test数据库下创建一张名为meters的超级表,包含 10,000 张子表,每表 10,000 条记录。 - 使用 CLI 连接数据库:
1
taos
1
2
3-- 在 taos 提示符下执行
USE test;
SELECT COUNT(*) FROM meters; - 修改默认密码:
1
ALTER USER root PASS 'YourNewPassword';
- 使用密码登录:
1
taos -uroot -pYourNewPassword
- 访问 Web 控制台:
浏览器访问http://<服务器IP>:6060,使用数据库用户名密码登录taosExplorer进行可视化管理。
三、 生产集群部署
1. 集群规划
假设使用 3 台服务器,所有节点均部署 TDengine。
| 服务器 | IP 地址 | 部署服务 | 对外代理端口 (Nginx) |
|---|---|---|---|
| node0 | 192.168.4.211 | TDengine | - |
| node1 | 192.168.4.115 | TDengine | - |
| node2 | 192.168.0.37 | TDengine, Nginx | 16041, 16043, 16060 |
端口说明:每个 TDengine 容器需开放与单节点相同的端口(6030, 6041, 6043, 6060, 6044-6049)。
2. 部署步骤
(1)所有节点:准备配置文件
1 | # 1. 启动临时容器获取默认配置 |
(2)所有节点:配置集群首个节点 (firstEp)
编辑 conf/taos.cfg 文件,所有节点的此配置必须相同。
1 | # 指向规划中第一个启动的节点(例如 node0) |
(3)所有节点:启动 TDengine 服务
创建 docker-compose.yml,使用 host 网络模式以便节点间通信。
1 | version: '3.9' |
启动:docker-compose up -d
启动顺序建议:先启动 firstEp 指向的节点(node0),再启动其他节点。
3. 集群验证与管理
- 查看数据节点:
1
docker exec -it tdengine taos
输出应显示 3 个1
SHOW DNODES;
status为ready的节点。 - 添加管理节点(Mnode)以实现高可用:
首个启动的 dnode 自动成为 Mnode(管理节点)。为防止单点故障,需添加冗余 Mnode。输出应显示一个1
2
3
4-- 在 dnode 2 (node1) 上创建第二个 Mnode
CREATE MNODE ON DNODE 2;
-- 查看 Mnode 状态
SHOW MNODES;leader和一个followerMnode。
四、 高可用与负载均衡(Nginx 代理)
在 node2 上部署 Nginx,对外提供统一的访问入口,实现 taosAdapter (REST API)、taosKeeper (监控) 和 taosExplorer (Web) 的负载均衡。
1. 创建 Nginx 配置文件 (nginx.conf)
1 | user root; |
2. 使用 Docker Compose 启动 Nginx
创建 docker-compose-nginx.yml:
1 | version: '3.9' |
启动:docker-compose -f docker-compose-nginx.yml up -d
3. 验证代理
通过 Nginx 代理访问 REST API:
1 | curl -L 'http://192.168.0.37:16041/rest/sql/test' \ |
应返回包含测试数据的 JSON 响应。
五、 关键注意事项
- 版本一致性:集群所有节点必须使用相同版本的 TDengine 镜像。
- 网络:集群部署必须使用
host网络或确保容器间在6030-6049端口上能直接通信。 - 防火墙:确保服务器防火墙开放相关端口。
- 数据持久化:务必挂载
/var/lib/taos目录以防止数据丢失。 - **
firstEp**:此配置是集群组建的关键,必须正确且一致。 - Mnode:生产环境至少配置 2 个 Mnode 以实现管理层面的高可用。