黄东旭解析 TiDB 的核心优势
429
2024-03-01
现有硬件资源环境统计如下
序号
IP
CPU
存储
内存
Hostname
描述信息
1
21.72.124.38
16核
300GB
46g
tidb
SQL 解析层,不存储数据
2
21.72.124.39
8核
300GB
15g
pd
管理模块,调度计算
3
21.72.124.40
16核
300GB
62g
tikv
分布式存储模块,存储数据
4
21.72.124.41
48核
300GB
125g
tiflash
列式存储,分析场景加速
5
21.72.124.42
16核
200GB
62g
ticdc
增量数据同步工具
6
21.72.124.43
8核
200GB
15g
localhost
管理节点
SQL 层,对外暴露 MySQL 协议的连接 endpoint,负责接受客户端的连接,执行 SQL 解析和优化,最终生成分布式执行计划。TiDB 层本身是无状态的,实践中可以启动多个 TiDB 实例,通过负载均衡组件(如 LVS、HAProxy 或 F5)对外提供统一的接入地址,客户端的连接可以均匀地分摊在多个 TiDB 实例上以达到负载均衡的效果。TiDB Server 本身并不存储数据,只是解析 SQL,将实际的数据读取请求转发给底层的存储节点 TiKV(或 TiFlash)。
PD (Placement Driver), 整个 TiDB 集群的元信息管理模块,负责存储每个 TiKV 节点实时的数据分布情况和集群的整体拓扑结构,提供 TiDB Dashboard 管控界面,并为分布式事务分配事务 ID。PD 不仅存储元信息,同时还会根据 TiKV 节点实时上报的数据分布状态,下发数据调度命令给具体的 TiKV 节点,可以说是整个集群的“大脑”。此外,PD 本身也是由至少 3 个节点构成,拥有高可用的能力。建议部署奇数个 PD 节点。
3.TiKV Server
负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range(从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。TiKV 的 API 在 KV 键值对层面提供对分布式事务的原生支持,默认提供了 SI (Snapshot Isolation) 的隔离级别,这也是 TiDB 在 SQL 层面支持分布式事务的核心。TiDB 的 SQL 层做完 SQL 解析后,会将 SQL 的执行计划转换为对 TiKV API 的实际调用。所以,数据都存储在 TiKV 中。另外,TiKV 中的数据都会自动维护多副本(默认为三副本),天然支持高可用和自动故障转移。
PS:TiKV底层为RocksDB,多版本并发控制 (MVCC)
TiFlash 是一类特殊的存储节点。和普通 TiKV 节点不一样的是,在 TiFlash 内部,数据是以列式的形式进行存储,主要的功能是为分析型的场景加速。
TiCDC 是一款 TiDB 增量数据同步工具,通过拉取上游 TiKV 的数据变更日志,TiCDC 可以将数据解析为有序的行级变更数据输出到下游。
序号
软件或包
名称
版本号
1
操作系统版本
CentOS Linux release 7.8.2003(Core)
7.8
2
TiDB软件包
tidb-community-server-v6.5.2-linux-amd64.tar.gz
V6.5.2
3
TiDB工具包
tidb-community-toolkit-v6.5.2-linux-amd64.tar.gz
V6.5.2
4
编译和构建 TiDB 所需的依赖库
Golang
1.19
5
Rust nightly-2022-07-31
6
GCC
7.X
7
LLVM
13.0
操作系统支持详见https://docs.pingcap.com/zh/tidb/v6.5/hardware-and-software-requirements
官方软件包和工具包下载:
https://cn.pingcap.com/product/#SelectProduct
依赖库(包)下载:
https://centos.pkgs.org/
说明:因最小化部署,每台服务器上部署了多个模块,此处模块名称是为区别每个模块的主节点而设置更改,无实际意义,正式环境每台服务器或多台服务器只能部署最多一个模块(管理节点除外)。
序号
IP
部署模块
1
21.72.124.38
TIDB\TIFLASH
2
21.72.124.39
PD\TIKV
3
21.72.124.40
PD
4
21.72.124.41
TIFLASH
5
21.72.124.42
PD\TIDB\TIKV\TICDC
6
21.72.124.43
TIKV\ALERTMANAGER\PROMETHEUS\GRAFANA
3PD \4TiDB \4TiKV \3TiFlash \1HA、manager
备注:A、B机房位于同城不同地点,直线距离约15公里
序号
IP
部署模块
CPU(C)
MEM(g)
Storge(GB)
机房
1
21.72.124.38
TiDB
16
46g
300
A
2
21.72.124.39
PD
8
15g
300
A
3
21.72.124.40
TiKV
16
62g
300
A
4
21.72.124.41
TiFlash
48
125g
300
A
5
21.72.124.42
TiCDC/HAproxy
16
62g
200
A
6
21.72.124.43
manager
8
15g
200
A
7
21.72.124.45
TiDB
8
15
200
A
8
21.72.124.46
TiDB
8
15
200
B
9
21.72.124.47
TiDB
8
15
200
B
10
21.72.124.48
PD
4
15
200
A
11
21.72.124.49
PD
4
15
200
B
12
21.72.124.50
TiKV
8
31
500
A
13
21.72.124.51
TiKV
8
31
500
B
14
21.72.124.52
TiKV
8
31
500
B
15
21.72.124.53
TiFlash
32
62
200
A
16
21.72.124.54
TiFlash
32
62
200
B
17
预留
18
预留
19
预留
命令:#df -h
生产环境官方建议:
组件
硬盘类型
实例数量(最低要求)
TiDB
***
2
PD
***
3
TiKV
***
3
TiFlash
1 or more ***s
2
TiCDC
***
2
监控
SAS
1
命令:
#free -g
生产环境官方建议:
组件
内存
实例数量(最低要求)
TiDB
48 GB+
2
PD
16 GB+
3
TiKV
64 GB+
3
TiFlash
128 GB+
2
TiCDC
64 GB+
2
监控
16 GB+
1
命令:
#nproc
生产环境官方建议:
组件
CPU
实例数量(最低要求)
TiDB
16 核+
2
PD
8 核+
3
TiKV
16 核+
3
TiFlash
48 核+
2
TiCDC
16 核+
2
监控
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。