81
社区成员
TiDB 具有无限水平扩展和高可用性的特点,通过简单地增加新节点即可实现计算和存储能力的扩展,轻松地应对高并发、海量数据的应用场景。
TiDB 的整体架构参考 Google Spanner/F1 的设计,也分为 TiDB 和 TiKV 上下两层。
TiDB 对应的是Google F1,是一层无状态的 SQL 层,负责与客户端交互,对客户端体现的是 MySQL 网络协议,且客户端需要通过一个本地负载均衡器将 SQL 请求转发到本地或最近的数据中心中的 TiDB 服务器。
TiDB 服务器负责解析用户的 SQL 语句,生成分布式的查询计划,并翻译成底层 Key-Value 操作发送给 TiKV,而 TiKV 则是真正存储数据的地方,对应的是 Google Spanner,是一个分布式 Key-Value 数据库,支持弹性水平扩展、 自动的灾难恢复和故障转移,以及 ACID 跨行事务。
另外,TiDB 架构采用 PD 集群来管理整个分布式数据库,PD 服务器在 TiKV 节点之间以 Region 作为单位进行调度,将部分数据迁移到新添加的节点上,完成集群调度和负载均衡。
TiDB 的集群架构如下图所示。
更多内容详见: