
已把真实 IP 和主机名全部替换成了示例值,重点保留这次真正有用的部署步骤、配置、验证和踩坑。下次换服务器,基本只需要替换 IP、主机名、安装路径。
一、部署说明
本文记录一次 TDengine TSDB-OSS 3.4.2.8 Community 三节点生产集群部署过程。
最终架构:
TDengine:3 DNode
MNode: 3 个
业务库: iot
副本数: REPLICA 3
VGROUPS: 6
组件:
taosd
taosAdapter
taosKeeper
taosExplorer
示例服务器:
| 节点 | IP | FQDN |
|---|---|---|
| Node01 | 192.168.100.81 | td01.example.com |
| Node02 | 192.168.100.82 | td02.example.com |
| Node03 | 192.168.100.83 | td03.example.com |
本文中的 IP、主机名均为虚拟示例。
二、部署前检查
正式安装前不要直接解压安装包,先把三个节点的基础环境确认好。
1. 检查操作系统
服务端支持的平台列表
https://docs.taosdata.com/operations-and-tooling/supported-platforms/

三台都执行:
cat /etc/redhat-release
uname -r
uname -m
ldd --version | head -1
确认:
操作系统版本
内核版本
CPU 架构 x86_64
glibc 版本
不同 TDengine 版本对操作系统、内核和 glibc 的要求可能不同,生产环境应提前按照对应版本官方兼容要求检查。
2. 检查服务器资源
lscpu
free -h
df -h
重点确认:
CPU
内存
Swap
系统盘
TDengine 数据盘
例如本次统一规划独立的:
/app
作为 TDengine 安装及数据目录。
3.测试磁盘io
注:如果磁盘io低于150MB,需要客户找主机人员排查raid5的情况,如果磁盘io还是低,可以进行拆盘多挂载点。
dd oflag=direct if=/dev/zero of=/home/diskdata1 bs=480k count=100000
//写入测试,写入大于150M正常
dd if=/home/diskdata1 of=/dev/null bs=1M count=10000
//读取测试大于150M正常
根据实际情况目录调整如下:
dd oflag=direct if=/dev/zero of=/app/diskdata1 bs=480k count=100000
dd if=/app/diskdata1 of=/dev/null bs=1M count=10000
dd oflag=direct if=/dev/zero of=/data/diskdata1 bs=480k count=100000
dd if=/data/diskdata1 of=/dev/null bs=1M count=10000
三、配置主机名
节点1:
hostnamectl set-hostname td01.example.com
节点2:
hostnamectl set-hostname td02.example.com
节点3:
hostnamectl set-hostname td03.example.com
检查:
hostname
hostname -f
例如节点1:
td01.example.com
TDengine 集群部署时主机名/FQDN 非常重要,不建议三个节点主机名配置混乱。
四、配置 hosts
三个节点统一修改:
vi /etc/hosts
加入:
192.168.100.81 td01.example.com td01
192.168.100.82 td02.example.com td02
192.168.100.83 td03.example.com td03
验证:
ping td01.example.com
ping td02.example.com
ping td03.example.com
同时检查:
getent hosts td01.example.com
getent hosts td02.example.com
getent hosts td03.example.com
三个节点必须能够正确解析。
五、检查时间同步
数据库集群时间必须保持一致。
timedatectl
systemctl status chronyd
chronyc tracking
chronyc sources -v
重点确认:
chronyd 正常
系统时间正常
时区一致
三个节点时间基本同步
六、防火墙端口

生产环境保持 firewalld 开启,根据实际启用组件按需永久放行端口。本次 Community 三节点部署主要使用 6030/TCP、6041/TCP、6043/TCP、6060/TCP;6044~6049 为可选采集协议端口,6050/6055 为 taosX 相关端口,未启用对应功能时无需开放。
TDengine 可能涉及这些端口。
不等于:
所有 TDengine 节点必须永久开放所有这些端口。
本次部署涉及的核心端口:
| 端口 | 当前是否需要 | 你这套用途 |
|---|---|---|
6030/TCP |
需要 | taosd、DNode/MNode、原生连接、集群内部通信 |
6041/TCP |
需要 | taosAdapter,应用 JDBC-RS / WebSocket / REST |
6043/TCP |
需要 | taosKeeper 监控上报 |
6060/TCP |
需要 | taosExplorer Web 页面 |
| 端口 | 用途 |
|---|---|
| 6030 | taosd / TDengine 集群通信 |
| 6041 | taosAdapter,JDBC-RS/REST/WebSocket |
| 6043 | taosKeeper |
| 6060 | taosExplorer Web |
本次环境实际放行:
firewall-cmd --permanent --add-port=6030/tcp
firewall-cmd --permanent --add-port=6041-6049/tcp
firewall-cmd --permanent --add-port=6044-6045/udp
firewall-cmd --permanent --add-port=6050/tcp
firewall-cmd --permanent --add-port=6055/tcp
firewall-cmd --permanent --add-port=6060/tcp
firewall-cmd --reload
检查:
firewall-cmd --list-ports
[root@sxdb03 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2026-09-28 16:52:25 CST; 14h ago
Docs: man:firewalld(1)
Main PID: 909 (firewalld)
CGroup: /system.slice/firewalld.service
└─909 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
9月 28 16:52:10 sxdb03.sjzt.cn systemd[1]: Starting firewalld - dynamic firewall daemon...
9月 28 16:52:25 sxdb03.sjzt.cn systemd[1]: Started firewalld - dynamic firewall daemon.
9月 28 16:52:27 sxdb03.sjzt.cn firewalld[909]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future rel...ling it now.
Hint: Some lines were ellipsized, use -l to show in full.
[root@sxdb03 ~]# firewall-cmd --list-ports
61858/tcp 6030/tcp 6041-6049/tcp 6044-6045/udp 6050/tcp 6055/tcp 6060/tcp
[root@sxdb03 ~]#
实际生产应根据启用的 TDengine 协议和组件精确开放端口。
七、系统资源检查
检查文件句柄:
ulimit -n
检查进程数:
ulimit -u
检查系统文件句柄:
sysctl fs.file-max
检查本地端口范围:
sysctl net.ipv4.ip_local_port_range
检查 taosd systemd 限制:
systemctl show taosd | egrep 'LimitNOFILE|LimitNPROC|LimitCORE'
本次环境最终确认:
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
八、规划目录
本次统一使用:
/app/tdengine
目录规划:
mkdir -p /app/tdengine/{server,data,log,tmp,core,dump,soft}
结构:
/app/tdengine/
├── server 程序目录
├── data 数据目录
├── log 日志目录
├── tmp 临时目录
├── core Core文件
├── dump 导入导出
└── soft 安装包
下次部署如果路径不同,只需要统一替换 /app/tdengine 即可。
九、下载安装包
版本功能对比-免费开源的 TDengine TSDB-OSS (社区版)和TDengine TSDB-Enterprise(企业版)。
https://www.taosdata.com/feature-comparison#full-comparison-tableTDengine 下载中心
https://www.taosdata.com/download-center?product=TDengine+TSDB-OSS&version=3.4.2.8&platform=Linux-Generic&architecture=x64


本文版本:
TDengine TSDB-OSS 3.4.2.8 Community
安装包:
tdengine-tsdb-oss-3.4.2.8-linux-x64.tar.gz
建议从 TDengine 官方下载对应 Linux x64 Community 安装包,然后上传至:
/app/tdengine/soft
检查:
cd /app/tdengine/soft
ls -lh
本次安装包 MD5:
8127b24ef6b2fe2d5574c3639b4d2de6
校验:
md5sum tdengine-tsdb-oss-3.4.2.8-linux-x64.tar.gz
生产安装前建议一定进行完整性校验。
十、解压 TDengine
cd /app/tdengine/server
tar -zxvf /app/tdengine/soft/tdengine-tsdb-oss-3.4.2.8-linux-x64.tar.gz
进入安装目录:
cd /app/tdengine/server/tdengine-tsdb-oss-3.4.2.8
十一、安装 TDengine
本次采用 TDengine TSDB-OSS 3.4.2.8 Community,实际部署 taosd、taosAdapter、taosKeeper、taosExplorer 四个常驻服务,同时使用 taosc/taos CLI 等客户端工具;taosX 与 taosX-Agent 属于 Enterprise 数据接入体系,本次 Community 环境未部署。
| 组件 | 主要作用 | 本次部署 | Community / OSS | Enterprise 专属 | 备注 |
|---|---|---|---|---|---|
| taosd | TDengine 核心数据库服务,承载 DNode、MNode、VNode | ✅ | ✅ | ❌ | 本次三台服务器均部署,核心端口 6030 |
| taosc | TDengine 原生客户端库,供客户端/其他组件连接 taosd | ✅ 随包安装 | ✅ | ❌ | 属于客户端库,不是独立常驻服务 |
| taosAdapter | REST、WebSocket、JDBC-RS 等应用接入适配层 | ✅ | ✅ | ❌ | 本次应用主要通过 6041 接入 |
| taosKeeper | 收集 TDengine 各组件监控指标并写入监控库 | ✅ | ✅ | ❌ | 本次运行在 6043,监控数据写入 log 库 |
| taosExplorer | Web 图形化管理界面 | ✅ | ✅ 免费提供 | ❌ | 本次 6060;从 3.3.0.0 起随官方安装包提供 |
| taosX | 零代码数据接入、数据管道等数据集成能力 | ❌ | ❌ | ✅ | Enterprise 核心组件 |
| taosX-Agent | 部署在数据源侧,帮助 taosX 接入 OPC、PI 等受网络限制的数据源 | ❌ | ❌ | ✅ | 与 taosX 配合使用,通常单独部署 |
| TDinsight | 基于 Grafana 的 TDengine 可视化监控方案 | ❌ | ✅ 可使用 | ❌ | 不是数据库核心常驻进程,本次未部署 Grafana/TDinsight |
三个节点都执行:
./install.sh -v server -e no -d /app/tdengine/server/taos
安装完成后程序位于类似:
/app/tdengine/server/taos/taos/bin/
例如:
taos
taosd
taosadapter
taoskeeper
taos-explorer
taosudf
验证:
/app/tdengine/server/taos/taos/bin/taosd -V
版本:
3.4.2.8.community
十二、配置 taos.cfg
主要配置文件:
/etc/taos/taos.cfg
三个节点大部分参数一致。
Node01
dataDir /app/tdengine/data
logDir /app/tdengine/log
firstEp td01.example.com:6030
fqdn td01.example.com
serverPort 6030
tempDir /app/tdengine/tmp
logKeepDays 30
Node02
只需要修改:
firstEp td01.example.com:6030
fqdn td02.example.com
Node03
firstEp td01.example.com:6030
fqdn td03.example.com
也就是说:
firstEp
三个节点都指向首节点。
而:
fqdn
必须是当前服务器自己的 FQDN。
检查:
grep -Ev '^#|^$' /etc/taos/taos.cfg
一个小坑
安装程序可能已经自动写入部分 fqdn 配置。
修改时注意检查:
grep -n 'fqdn' /etc/taos/taos.cfg
不要因为重复修改造成多个错误配置值。
十三、启动 taosd
先启动节点1:
systemctl enable --now taosd
检查:
systemctl status taosd
确认:
active (running)
检查 6030:
ss -lntp | grep 6030
随后启动 Node02、Node03:
systemctl enable --now taosd
十四、创建 DNode
登录节点1:
taos -u root -p
添加另外两个节点:
CREATE DNODE "td02.example.com:6030";
CREATE DNODE "td03.example.com:6030";
查询:
SHOW DNODES;
正常应看到:
1 td01.example.com:6030 ready
2 td02.example.com:6030 ready
3 td03.example.com:6030 ready
核心判断:
status = ready
十五、创建三个 MNode
第一个节点本身已经存在 MNode,再在节点2、节点3创建:
CREATE MNODE ON DNODE 2;
CREATE MNODE ON DNODE 3;
查询:
SHOW MNODES;
正常状态:
1 个 leader
2 个 follower
全部 ready
例如:
td01 leader
td02 follower
td03 follower
Leader 并不是固定的,发生节点重启或故障后可以自动重新选举。
十六、创建三副本业务库
本次生产环境为 3 台 TDengine 节点,每台服务器约:
CPU:8 Core
内存:15 GB
TDengine 数据盘:约 200 GB
因此数据库参数没有完全采用默认值,而是综合考虑:
三节点高可用
CPU / 内存资源
VGroup 数量
单节点内存占用
时序数据查询特点
数据保留周期
WAL可靠性
本文业务库:
iot
最终使用:
CREATE DATABASE `iot`
VGROUPS 6
REPLICA 3
BUFFER 256
CACHEMODEL 'both'
CACHESIZE 5
COMP 2
DURATION 60d
KEEP 3650d
PRECISION 'ms'
WAL_LEVEL 2
WAL_FSYNC_PERIOD 3000
WAL_RETENTION_PERIOD 3600;
| 参数 | 本次值 | 主要依据 |
|---|---|---|
| VGROUPS | 6 | 8核CPU、并行能力、VNode资源开销 |
| REPLICA | 3 | 3节点生产高可用 |
| BUFFER | 256MB | 每节点约15GB内存,控制VNode内存 |
| CACHEMODEL | both | 最新值/最新行查询场景 |
| CACHESIZE | 5MB | 控制最新数据缓存内存 |
| COMP | 2 | 长期时序数据压缩存储 |
| DURATION | 60d | 与10年KEEP配合,控制文件数量 |
| KEEP | 3650d | 数据生命周期10年 |
| PRECISION | ms | 业务毫秒级时间戳 |
| WAL_LEVEL | 2 | 生产数据可靠性 |
| WAL_FSYNC_PERIOD | 3000ms | 可靠性与IO性能平衡 |
| WAL_RETENTION_PERIOD | 3600s | WAL保留1小时 |
KEEP 3650d = 数据保留策略为10年,但并不代表当前每节点约200GB磁盘一定能容纳10年数据。正式运行后仍需根据实际日增量、压缩率和磁盘增长趋势进行容量评估及扩容。
查看:
SHOW DATABASES;
检查副本:
SHOW iot.VGROUPS;
重点关注:
v1_status
v2_status
v3_status
is_ready
applied/committed
正常应该看到每个 VGroup:
1 Leader
2 Follower
is_ready = true
例如:
DNode1 follower
DNode2 follower
DNode3 leader
三副本并不是三个独立数据库。
本质上是:
同一个 iot 数据库
↓
多个 VGroup
↓
每个 VGroup 保存 3 个副本
↓
1 Leader + 2 Follower
某一个节点故障后,剩余副本可以完成重新选主继续提供数据服务。
十七、创建业务账号
管理员:
root
业务账号:
CREATE USER appl_sjzt PASS '<PASSWORD>' SYSINFO 1;
监控账号:
CREATE USER monitor_sjzt PASS '<PASSWORD>' SYSINFO 1;
密码不要写入部署文档。
查看:
SHOW USERS;
Community 版注意事项
在 3.4.2.8 Community 实际测试中:
GRANT ...
会提示该功能属于 Enterprise Edition。
因此 Community 版不要直接照搬企业版的细粒度授权方案,业务账号最终能执行哪些操作应在当前版本中实际验证。
十八、配置 taosAdapter
配置:
/etc/taos/taosadapter.toml
本次只调整必要项。
将:
debug = true
修改为:
debug = false
命令:
sed -i 's/^debug = true/debug = false/' /etc/taos/taosadapter.toml
启动:
systemctl enable --now taosadapter
检查:
systemctl status taosadapter
ss -lntp | grep 6041
正常:
6041 LISTEN
6041 就是后续应用通过 JDBC-RS、REST、WebSocket 访问 TDengine 的重要入口。
十九、配置 taosKeeper
配置文件:
/etc/taos/taoskeeper.toml
重点修改:
[tdengine]
host = "127.0.0.1"
port = 6041
username = "monitor_sjzt"
password = "<MONITOR_PASSWORD>"
usessl = false
本次其他配置保持默认,例如:
[metrics.database]
name = "log"
vgroups = 1
buffer = 64
keep = 90
cachemodel = "both"
其中:
keep = 90
代表 Keeper 监控数据库数据保留时间。
保护配置文件:
chmod 600 /etc/taos/taoskeeper.toml
启动:
systemctl enable --now taoskeeper
检查:
systemctl status taoskeeper
ss -lntp | grep 6043
Keeper 踩坑
如果出现:
Authentication failure
第一时间检查:
username
password
host
port
尤其是密码是否手工输入错误。
另外 TOML 配置文件不要出现:
username = "xxx"
username = "yyy"
这种重复 Key,否则服务可能直接启动失败。
二十、配置 Explorer
Explorer 是 TDengine 的 Web 管理界面。
默认服务:
taos-explorer
为了 Community 环境跳过注册,在:
vi /etc/default/taos-explorer
加入:
EXPLORER_SKIP_REGISTER=true
保存。
Explorer 配置文件:
/etc/taos/explorer.toml
重点确认其 cluster 能连接本节点 taosAdapter,例如:
cluster = "http://td01.example.com:6041"
Node02、Node03 对应自己的 FQDN 即可。
启动:
systemctl enable --now taos-explorer
检查:
systemctl status taos-explorer
检查端口:
ss -lntp | grep 6060
浏览器访问:
http://192.168.100.81:6060

其他两个节点:
http://192.168.100.82:6060
http://192.168.100.83:6060
三个 Explorer 都连接的是同一个 TDengine 集群。
二十一、Explorer Connection refused 排查
本次部署时遇到过 Explorer 页面提示连接:
:6041 Connection refused
原因并不是 Explorer 本身异常,而是:
taosExplorer
↓
taosAdapter:6041
Explorer 依赖 taosAdapter。
所以先检查:
systemctl status taosadapter
ss -lntp | grep 6041
taosAdapter 正常后,再重启 Explorer:
systemctl restart taos-explorer
最终即可正常网页登录。
这个坑比较容易误判。
二十二、统一启动四个服务
TDengine 安装完成后会创建相关 systemd 服务,安装后应统一检查服务是否已启用开机自启动;若未启用,则使用 systemctl enable 手工启用。
三台服务器最终都应该(如果没有自启动,直接这样加):
# 设置开机自启动并立即启动
systemctl enable --now taosd
systemctl enable --now taosadapter
systemctl enable --now taoskeeper
systemctl enable --now taos-explorer
# 检查开机自启动状态
systemctl is-enabled taosd taosadapter taoskeeper taos-explorer
# 检查运行状态
systemctl is-active taosd taosadapter taoskeeper taos-explorer
检查:
systemctl is-enabled taosd
systemctl is-enabled taosadapter
systemctl is-enabled taoskeeper
systemctl is-enabled taos-explorer
正常:
enabled
enabled
enabled
enabled
检查运行状态:
systemctl is-active taosd taosadapter taoskeeper taos-explorer
正常:
active
active
active
active
端口统一检查:
ss -lntp | egrep '6030|6041|6043|6060'
二十三、集群最终检查
登录任意节点:
taos -u root -p
执行:
SHOW DATABASES;
SHOW DNODES;
SHOW MNODES;
SHOW iot.VGROUPS;
验收标准:
3 个 DNode 全部 ready
3 个 MNode 全部 ready
1 Leader + 2 Follower
iot 6 个 VGroup
每个 VGroup:
3 个副本
1 Leader + 2 Follower
is_ready = true
applied/committed 正常
二十四、滚动重启验证
数据库部署完成后,生产环境非常建议做一次节点滚动重启测试。
原则:
一次只重启一个节点,前一个完全恢复后再重启下一个。
例如:
Node01
↓
恢复 ready
↓
Node02
↓
恢复 ready
↓
Node03
每台启动后检查:
uptime
systemctl is-active taosd taosadapter taoskeeper taos-explorer
ss -lntp | egrep '6030|6041|6043|6060'
然后:
SHOW DNODES;
SHOW MNODES;
SHOW iot.VGROUPS;
本次实际测试中,重启前 MNode Leader 位于 Node03。
Node03 重启后:
Node01 自动成为 Leader
Node02 Follower
Node03 恢复后成为 Follower
说明 MNode 自动选主工作正常。
这一步非常有价值,因为它真正验证了:
服务开机自启动
DNode 自动重新加入
MNode 自动重新选主
副本自动恢复
二十五、应用如何连接
应用使用:
taosAdapter : 6041
JDBC Driver:
com.taosdata.jdbc.rs.RestfulDriver
没有配置 VIP 时,可以先使用任意一个 taosAdapter 节点,例如:
jdbc:TAOS-RS://192.168.100.81:6041/iot?timezone=Asia/Beijing&charset=UTF-8&httpPoolSize=500
注意:
应用连接 Node01:
应用
↓
Node01:6041
↓
taosAdapter
↓
TDengine 整个集群
并不是数据只写 Node01。
真正的数据副本、Leader、Follower 由 TDengine 自己管理。
二十六、三副本与 VIP 的区别
这个概念部署完成后一定要搞清楚。
三副本
负责:
数据库数据层高可用
例如:
Node01 Follower
Node02 Follower
Node03 Leader
Node03 故障后,剩余副本重新选 Leader。
这属于:
TDengine 内部机制
不涉及数据库 IP 漂移。
Nginx / VIP
解决的是:
应用入口高可用
当前:
应用
↓
192.168.100.81:6041
如果 Node01 整台服务器故障,那么 TDengine 数据库集群可能仍然正常,但应用连接地址已经不可达。
后续可以设计:
应用
│
▼
VIP:6041
│
Nginx / LB
┌────────┼────────┐
↓ ↓ ↓
81:6041 82:6041 83:6041
│ │ │
└────────┼────────┘
↓
TDengine 集群
所以一句话总结:
TDengine 三副本解决数据库数据层高可用,Nginx + VIP 解决应用接入层高可用。
二十七、常用巡检命令
服务状态
systemctl status taosd
systemctl status taosadapter
systemctl status taoskeeper
systemctl status taos-explorer
或者:
systemctl is-active taosd taosadapter taoskeeper taos-explorer
端口
ss -lntp | egrep '6030|6041|6043|6060'
进程
ps -ef | grep taos
正常通常可以看到:
taosd
taosudf
taosadapter
taoskeeper
taos-explorer
集群节点
SHOW DNODES;
MNode
SHOW MNODES;
数据库
SHOW DATABASES;
三副本
SHOW iot.VGROUPS;
用户
SHOW USERS;
二十八、最终目录速查
程序:
/app/tdengine/server/taos
数据:
/app/tdengine/data
数据库日志:
/app/tdengine/log
临时目录:
/app/tdengine/tmp
安装包:
/app/tdengine/soft
主要配置:
/etc/taos/taos.cfg
/etc/taos/taosadapter.toml
/etc/taos/taoskeeper.toml
/etc/taos/explorer.toml
/etc/default/taos-explorer
主要服务:
taosd
taosadapter
taoskeeper
taos-explorer
核心端口:
6030 taosd
6041 taosAdapter
6043 taosKeeper
6060 taosExplorer
二十九、下次快速部署顺序
以后再部署一套,其实记住下面这条主线就可以:
1. 检查 OS / CPU / 内存 / 磁盘
↓
2. 配置 hostname
↓
3. 配置 /etc/hosts
↓
4. 检查时间同步
↓
5. 检查防火墙和系统资源
↓
6. 创建 TDengine 目录
↓
7. 上传并校验安装包
↓
8. 三节点安装 TDengine
↓
9. 修改 taos.cfg
↓
10. 启动三个 taosd
↓
11. CREATE DNODE
↓
12. CREATE MNODE
↓
13. 创建 REPLICA 3 数据库
↓
14. 创建业务/监控用户
↓
15. 配置 taosAdapter
↓
16. 配置 taosKeeper
↓
17. 配置 taosExplorer
↓
18. 检查 6030/6041/6043/6060
↓
19. SHOW DNODES / MNODES / VGROUPS
↓
20. 三节点滚动重启验证
↓
21. 应用连接 6041
↓
22. 后续补 Nginx / VIP
三十、总结
这次部署最值得掌握的不是单纯把 TDengine 安装起来,而是把整个架构关系理顺了:
DNode
= TDengine 数据节点
MNode
= 集群管理节点
VGroup
= 数据分片单元
REPLICA 3
= 每个 VGroup 三副本
Leader / Follower
= TDengine 内部副本选主机制
taosAdapter 6041
= 应用访问入口
taosKeeper
= TDengine 监控组件
taosExplorer 6060
= Web 管理界面
Nginx / VIP
= 应用入口高可用
三副本本身已经实现数据库数据层的高可用:
单节点故障
↓
剩余两个副本继续工作
↓
重新选举 Leader
↓
故障节点恢复
↓
副本重新追平
而 Nginx/VIP 是后续进一步解决 应用连接入口单点。
这样,下次再部署 TDengine 三节点三副本环境,即使安装路径、IP、主机名发生变化,整个部署思路基本不变。
