TIDB1 —— TiDB简介
TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。
TiDB 具备如下核心特点:
1 高度兼容 MySQL
大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MySQL 集群亦可通过 TiDB 工具进行实时迁移
2水平弹性扩展
通过简单地增加新节点即可实现 TiDB 的水平扩展,按需扩展吞吐或存储
3分布式事务
支持标准的 ACID 事务
4 高可用
二 TiDb 整体架构
TiDB 集群主要分为三个组件:
1TiDB Server
TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。 TiDB Server是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy 或F5)对外提供统一的接入地址。
2PD Server
Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个: 一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader的迁移等);三是分配全局唯一且递增的事务 ID。
PD 是一个集群,需要部署奇数个节点,一般线上推荐至少部署 3 个节点。
3TiKV Server
TiKV Server 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range (从 StartKey 到EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region 。TiKV 使用 Raft协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 RaftGroup,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。
五 其他
github tidb文档:https://github.com/pingcap/docs-cn
最新文章
- 用于主题检测的临时日志(b2d5c7b3-e3f6-4b0f-bfa4-a08e923eda9b - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
- ipv4、ipv6的socket同时监听“bind: Address already in use”的解决方法
- linux下动态库编译的依赖问题
- Java Swing 探索(一)LayoutManager
- .NET之美——C# 中的委托和事件
- 破解之寻找OEP[手动脱壳](2)
- SQL索引问题
- Html页面加回滚
- Hostker云主机
- Eclipse中Spring插件的安装
- JAVA_SE基础——11.Java中的运算符
- Python中list的功能介绍
- 移动App测试中的最佳做法
- 《CLR Via C#》读书笔记:24.运行时序列化
- ajax文件上传-FormData()
- 如何在VMware中安装Linux系统
- day04-运算符
- 安装gitlab遇到的问题
- sublime text 怎么浏览包
- 398. Random Pick Index随机pick函数