1.tidb 的架构
TiDB的架构主要由几个关键组件构成,这些组件共同协作以提供一个分布式的关系型
数据库解决方案。以下是TiDB架构的主要组成部分及其功能:
TiDB Server:主要负责解析SQL查询并将数据读取请求转发给底层的存储节点。
它本身并不存储数据,而是作为一个轻量级的SQL层存在,提供标准的SQL接口,
兼容MySQL协议和语法。
TiKV:作为底层的分布式键值对存储引擎,用于存储OLTP(在线事务处理)数据。
它采用行存储格式,支持事务机制,并且是分布式的Key-Value存储引擎。
TiKV的基本存储单位是Region,每个Region负责存储一个Key Range的数据。
TiFlash:提供列式存储,用于执行高效的分析查询。它是TiDB中的列式存储引擎,
允许在OLTP数据上执行OLAP(在线分析处理)查询,提升查询性能。
TiSpark:作为OLAP计算引擎,将Spark SQL直接运行在分布式键值对存储层TiKV上。
TiSpark融合了TiKV分布式集群的优势,提供了强大的大数据处理能力,
支持复杂的OLAP查询。
PD(Placement Driver):作为分布式协调层,负责管理整个TiDB集群的元信息,
包括数据分布情况和集群拓扑结构。PD还提供TiDB Dashboard管控界面,并为分布式事务分配事务ID。
它是集群的“大脑”,确保数据的高可用性和一致性。
兼容性与扩展性:TiDB高度兼容MySQL,大多数情况下无需修改代码即可从MySQL迁移到TiDB。
它支持水平弹性扩展,通过简单地增加新节点即可实现吞吐量或存储的扩展,轻松应对
高并发和海量数据场景。
事务处理:TiDB 100%支持标准的ACID事务,提供金融级的高可用性和数据强一致性保证。
基于Raft协议的多数派选举协议,在不丢失大多数副本的前提下,实现故障的自动恢复。
通过这些组件的协同工作,TiDB提供了一个高性能、高可用、易于扩展的分布式关系型
数据库解决方案,适合处理联机事务处理(OLTP)和联机分析处理(OLAP)的混合工作负载。