TiDB 简介
TiDB 是一款由 PingCAP 设计的开源分布式 HTAP 数据库。结合了传统的 RDBMS 和 NoSQL 优势,TiDB(NewSQL)具备以下特性:
-
高度支持 MySQL 协议
-
轻松应对水平扩展
-
100% 支持分布式 ACID 事务
-
基于 Raft 协议保证数据一致性,并实现故障自动恢复
-
一站式 HTAP 解决方案
-
云原生 SQL 数据库
TiDB 可以轻松替换现有的以 MySQL 协议为基础的各类数据库中间件或者分库分表方案,减少开发人员对数据库 Scale 细节问题的关注来提升生产力。
TiDB 架构

TiKV Server
TiKV Server 是一个分布式 Key-Value 存储。存储数据的基本单位是 Region,每个 TiKV 节点会负责多个 Region。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 以 Region 为单位进行调度。
延伸阅读:
https : //pingcap.com/blog-cn/tidb-internal-1/
PD Server
Placement Driver(简称 PD)是整个集群的管理模块,其主要工作有三个:一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);三是分配全局唯一且递增的事务 ID。PD 是一个集群,需要部署奇数个节点,一般线上推荐至少部署 3 个节点。
延伸阅读:
https : //pingcap.com/blog-cn/tidb-internal-3/
TiDB Server
TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。TiDB Server 是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如 LVS、HAProxy 或 F5)对外提供统一的接入地址。
延伸阅读:
https : //pingcap.com/blog-cn/tidb-internal-2/
TiSpark
TiSpark 作为 TiDB 中解决用户复杂 OLAP 需求的主要组件,将 Spark SQL 直接运行在 TiDB 存储层上,同时融合 TiKV 分布式集群的优势,并融入大数据社区生态。至此,TiDB 可以通过一套系统,同时支持 OLTP 与 OLAP,免除用户数据同步的烦恼。
环境依赖
本文基于 Linux 发行版本 Centos7.x 配合流行的包管理工具 yum 进行演示,因此您需要准备一台 Centos7.x 版本的服务器并安装好 yum。 滴滴云 DC2 拥有性价比高、安全可靠和秒级计费等优势,建议您直接 购买 DC2 来学习本教程。
以下内容基于 滴滴云 DC2(CentOS7.3 16 核 CPU 32GB 内存 90GB HDD 存储按时长计费)公网 IP(116.85.37.138 按出流量计费)进行演示。
安装过程
登录 DC2 并切换到 root 账户
$ ssh dc2 - user @ 116.85.37.138
$ sudo - iu root
安装 Docker-CE
-
切换 yum 源到国内:

-
更新 yum 软件源缓存,并安装 Docker-CE:
$ yum makecache fast
$ yum install docker - ce
-
启动 Docker-CE:
$ systemctl enable docker
$ systemctl start docker
-
测试 Docker-CE 是否安装成功, 输出以下信息,说明安装成功:

安装Docker Compose
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。下载二进制文件并进行安装:
$ curl - L https : //github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/
docker-compose
$ chmod + x / usr / local / bin / docker - compose
安装 TiDB
-
下载 tidb-docker-compose:
$ git clone https : //github.com/pingcap/tidb-docker-compose.git
-
创建集群:

-
启动集群:

验证 TiDB 功能
-
安装 MySQL 客户端,并连接 TiDB 默认端口:
$ yum install - y mysql
-
下载 MySQL 验证数据:
$ git clone https : //github.com/datacharmer/test_db.git
-
连接 TiDB 默认端口随意操作数据进行验证:

-
访问集群 Grafana 监控页面(http://116.85.37.138:3000)以及集群数据可视化页面(http://116.85.37.138:8010)进行验证

参考
https://pingcap.com/docs-cn/
https://legacy.gitbook.com/book/yeasy/docker_practice/details
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31559758/viewspace-2284751/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31559758/viewspace-2284751/
本文介绍TiDB,一款开源分布式HTAP数据库,详细解析其架构包括TiKVServer、PDServer与TiDBServer,以及如何在CentOS7.x环境下通过Docker部署TiDB集群并验证其功能。

被折叠的 条评论
为什么被折叠?



