Architecture
mermaid
graph TD
subgraph Client
A[Application] -->|SQL Query| B[TiDB Server]
end
subgraph TiDB Cluster
B -->|Metadata Management| C[PD Server]
B -->|Read/Write KV| D[TiKV Cluster]
end
subgraph TiKV Cluster
D1[TiKV Node 1] -->|Raft Replication| D2[TiKV Node 2]
D2 -->|Raft Replication| D3[TiKV Node 3]
end
subgraph Storage Layer
D1 -->|Persist Data| E1[SSD/HDD]
D2 -->|Persist Data| E2[SSD/HDD]
D3 -->|Persist Data| E3[SSD/HDD]
end
架构解析
- Client(应用层)
- 应用直接与 TiDB Server 交互,发送 SQL 查询。
- TiDB Server(计算层)
- TiDB Server 解析 SQL,优化查询,执行 SQL 语句。
- 通过 PD Server 获取 TiKV 存储信息(Region 位置)。
- 直接访问 TiKV 进行数据读写。
- PD Server(元数据管理)
- 负责 TiKV Region 调度,管理数据分片位置。
- TiDB 通过 PD 发现和管理 TiKV 实例。
- 维护 TiKV 节点的负载均衡,防止某些节点压力过大。
- TiKV Cluster(分布式存储)
- 采用 Raft 协议 进行 多副本同步,保证数据高可用。
- 每个 TiKV 负责存储部分 Region(数据分片)。
- Storage Layer(物理存储)
- TiKV 运行在 SSD/HDD 设备上,底层使用 RocksDB 作为存储引擎。
这样,TiDB 具备:
- 计算存储分离(TiDB 计算,TiKV 存储)
- 水平扩展(增加 TiDB/TiKV 服务器即可扩展)
- 高可用(Raft 保证数据安全)
TIDB Server PD
Check --path
param which is pd server endpoint
bash
ps aux | grep tidb-server
bash
tidb 26560 42.8 4.8 10024340 6404508 ? Ssl 15:18 13:18 bin/tikv-server --addr 0.0.0.0:21163 --advertise-addr 192.168.48.90:21163 --status-addr 0.0.0.0:21183 --advertise-status-addr 192.168.48.90:21183 --pd 192.168.48.90:13379 --data-dir /data/tidb-data/tikv-21163 --config conf/tikv.toml --log-file /data/tidb-deploy/tikv-21163/log/tikv.log
SQL
check.
sql
SHOW CONFIG WHERE name LIKE '%pd%';
sql
+------+---------------------+------------------------------------------------+----------------------------+
| Type | Instance | Name | Value |
+------+---------------------+------------------------------------------------+----------------------------+
| pd | 192.168.48.90:13379 | pd-server.dashboard-address | http://192.168.48.90:13379 |
| tikv | 192.168.48.90:21163 | pd.endpoints | ["192.168.48.90:13379"] |
+------+---------------------+------------------------------------------------+----------------------------+