TiDB 是一款融合了水平伸缩性和强一致性的分布式关系型数据库系统,它借鉴 Google 的 Spanner 和 F1 系统的设计理念并结合 SQL 标准及 MySQL 生态的优点构建而成。其整体架构以高度兼容传统的关系模型为基础,实现了真正意义上的无限水平拓展能力且保证 ACID 事务的一致性。
从总体架构的角度看,TiDB 主要由三个核心组件构成:
**一、计算层 (TiDB Server)**
作为系统的逻辑控制中心,每个 TiDB Server 实例都是无状态服务节点,负责接收客户端请求并对 SQL 进行解析优化后分发至各个存储单元执行。这一层级通过 Raft 协议实现集群内部高可用复制机制,并利用两阶段提交协议保障跨分区事务一致性。此外,借助于 HTAP 架构设计理念,TiDB 能够在同一套平台上支持 OLTP 在线交易并发操作的同时进行实时分析查询(OLAP),极大提升了资源利用率和响应速度。
**二、协调层(TiKV 或 PD) **
- **PD (Placement Driver)**: 扮演着全局调度器的角色,管理和维护整个集群元信息,包括但不限于 Region 割裂分布情况、副本位置等重要拓扑结构信息;同时对负载均衡、故障恢复等问题提供智能决策策略。
- **TiKV:** 提供分布式键值存储引擎的服务端部分,将海量数据分割为多个区域(Region),每一个 Region 部署有多个 replicas 并采用Raft共识算法来确保数据可靠性与持久化。这使得 TiDB 可以透明地分散读写压力并在不同物理服务器间动态平衡数据流量,从而达到良好的横向扩容效果。
**三、存储层**
此层次主要对应的就是上述提到的 TiKV 存储实例群集,它们基于 Rocksdb 对象存储引擎进一步封装打造而来。每一项具体数据都被打散到不同的 Region 中去,并依靠 raft group 来维持多份拷贝之间的同步更新,即使面对硬件故障也能快速切换至其他存活 replica 继续对外提供稳定服务。
总结来说,TiDB 分布式数据库的整体架构充分体现了云原生时代的先进设计理念:通过解耦合各功能模块并将复杂的底层细节隐藏起来,使其能够轻松应对大规模互联网应用场景下的挑战,既保持了一贯以来 RDBMS 强烈的事物安全承诺又具备 NoSQL 类产品的弹性扩展优势,是现代云计算环境中的理想选择方案。
标签: tidb框架