什么是TIDB基础架构?
TIDB基础架构是一种多节点、分布式的数据库管理系统,与传统的单机数据库相比,拥有更好的扩展性和弹性的阔缩容。TIDB不仅支持ACID事务,还兼容大多数Mysql的语法,可以在大多数场景下直接替换Mysql。

TIDB默认支持高可用,在副本失效的情况下,数据库可以自动进行数据修复和故障转移。对于一些有强一致性需求的场景,如银行转账,TIDB也可以满足要求。
TIDB基础架构的组成部分
TIDB基础架构主要由以下几个部分组成:
- TiDBServer:TiDBServer是TIDB基础架构的SQL层,对外暴露MySQL协议的连接endpoint,负责解析SQL、执行SQL优化,最终生成分布式执行计划。TiDBServer本身是无状态的,可以通过负载均衡组件对外提供统一的接入地址。
- TIDBPD:TIDBPD(Placement Driver)负责存储每个TiKV节点实时的数据分布情况和集群的整体拓扑结构,提供TIDBDashboard管控界面,并为分布式事务分配事务ID。PD本身也是由至少3个节点构成,拥有高可用的能力。
- TiKVServer:TiKVServer负责存储数据,存储数据的基本单位是region,每个region负责存储一个KeyRange左闭右开区间的数据。TiKV中的数据都会自动维护多副本,天然支持高可用和自动故障转移。
RAFT日志复制
在TIDB中,使用RAFT协议来实现数据复制。具体实现过程如下:
- propose请求操作,leader将请求变成写入日志。
- append将日志持久化写入的到RocksDB。
- replicate将node1日志复制给node2,node3….,接收到日志后也要自己进行append。
- committed不仅仅是leader持久化log,其他节点>50%节点保障log在多个节点丢失不了后进行commit。
- APPLY将rocksdbraft日志写入到rocksdbkv中(实际一个kv有两个rocksdb)。
以上是TIDB基础架构的一些介绍,希望对各位读者有所帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6504.html
