TiDB整体架构以及在Mac系统上快速安装部署TiDB

TiDB整体架构以及在Mac系统上快速安装部署TiDB

整体架构和三个核心组件

TiDB集群主要包括三个核心组件:

  • TiKV Server

    ​ 负责存储数据。是一个分布式的对外提供事务的Key-Value存储引擎。

    • 存储事务的基本单位是Region,每个region负责存储一个Key Range: [StartKey, EndKey) 的数据,每个 TiKV 节点会负责多个 Region。

    • TiKV 使用Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,调度的基本单位也是Region

  • TiDB Server

    负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交 互获取数据,最终返回结果

    • TiDB Server 是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩 展;
    • 可以通过负载均衡组件(如 LVS、HAProxy 或 F5)对外提供统一的接入地址。
  • PD Server

    • Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个:

      • 一是存储集群的元信息(某个 Key 存储 在哪个 TiKV 节点);
      • 二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);
      • 三是分配全局唯一且递增的事务 ID
    • PD 通过 Raft 协议保证数据的安全性。Raft 的 leader server 负责处理所有操作,其余的 PD server 仅用于保证高可 用。建议部署奇数个 PD 节点。

两大核心特性

  • 无限水平扩展

    包含两方面:

    • 计算能力

      TiDB Server 负责处理 SQL 请求,随着业务的增长,可以简单的添加 TiDB Server 节点,提高整体的处理能力,提供更高的吞吐。

    • 存储能力

      TiKV 负责存储数据,随着数据量的增长,可以部署更多的 TiKV Server 节点解决数据 Scale 的问题。PD 会在 TiKV 节点 之间以 Region 为单位做调度,将部分数据迁移到新加的节点上。

    -> 部署策略:早期可以部署少量的服务实例,随着业务增长,按需添加TiKV或TiDB实例。

  • 高可用

    指TiDB/TiKV/PD 这三个组件都能容忍部分实例失效,不影响整个集群的可用性。

部署

TiDB 可以部署在本地和云平台上,支持公有云、私有云和混合云。常见的TiDB集群部署方式:

  • 使用Ansible部署:如果用于生产环境,须使用Ansible部署TiDB集群。

  • 使用Ansible离线部署:如果部署环境无法访问网络,可使用Ansible进行离线部署。

  • 使用DockerCompose部署:如果你只是想测试TiDB、体验TiDB的特性,或者用于开发环境,可以使用

    Docker Compose 在本地快速部署 TiDB 集群。该部署方式不适用于生产环境。

  • 使用Docker部署:你可以使用Docker部署TiDB集群,但该部署方式不适用于生产环境。

快速上手_使用DockerCompose部署

在Mac系统上快速安装TiDB

可以根据官网教程安装TiDB,有两种可选环境:Production(生产环境)和 Development(开发环境),这里我们选择开发环境。

Homebrew install instructions (Recommended):

  1. Install Homebrew

  2. Install TiDB

    brew tap pingcap/brew
    
    brew install tidb-server
    
  3. Start TiDB

    tidb-server
    
  4. If you would like to connect a MySQL client to TiDB

    brew install mysql-client
    
    mysql -h 127.0.0.1 -P4000 -uroot
    

使用 Docker Compose 快速构建 TiDB 集群

新手在学习阶段想要体验TiDB特性,快速构建一个开发环境,可以在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群。Docker Compose 可以通过一个YAML 文件定义多个容器的应用服务,然后一键启动或停止。

准备环境

• Docker(17.06.0及以上版本)

• DockerCompose

• Git

快速部署

  1. 下载tidb-docker-compose

    git clone https://github.com/pingcap/tidb-docker-compose.git

  2. 创建并启动集群

    cd tidb-docker-compose && docker-compose pull # Get the latest Docker images
    docker-compose up -d
    

  1. 访问集群

    mysql -h 127.0.0.1 -P 4000 -u root
    


访问集群监控页面:

访问集群 Grafana 监控页面:http://localhost:3000 ,点击左下角的登陆图标:

登陆,默认用户名和密码均为 admin。

即可查看整个集群的状态:
接下来按照自己需求查看整个集群概况(Overview),或者查看各个组件的状态即可。

Referrence

Raft协议详细解析_如何通过选举过程保持一致性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章