tidb整体架构及主要特性

author author     2023-03-26     160

关键词:

参考技术A 首先,贴出的是TiDB的架构图。TiDB 集群主要包括三个核心组件:TiDB Server,PD Server 和 TiKV Server。此外,还有用于解决用户复杂 OLAP 需求的 TiSpark 组件。

TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。TiDB Server 是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy 或 F5)对外提供统一的接入地址。

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

TiKV Server 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range(从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。

TiSpark 作为 TiDB 中解决用户复杂 OLAP 需求的主要组件,将 Spark SQL 直接运行在 TiDB 存储层上,同时融合 TiKV 分布式集群的优势,并融入大数据社区生态。至此,TiDB 可以通过一套系统,同时支持 OLTP 与 OLAP,免除用户数据同步的烦恼。

TiDB 有两大两大核心特性:水平扩展与高可用。

无限水平扩展是 TiDB 的一大特点,这里说的水平扩展包括两方面:计算能力和存储能力。TiDB Server 负责处理 SQL 请求,随着业务的增长,可以简单的添加TiDB Server 节点,提高整体的处理能力,提供更高的吞吐。TiKV 负责存储数据,随着数据量的增长,可以部署更多的 TiKV Server 节点解决数据 Scale 的问题。PD 会在 TiKV 节点之间以 Region 为单位做调度,将部分数据迁移到新加的节点上。所以在业务的早期,可以只部署少量的服务实例(推荐至少部署 3 个 TiKV,3 个 PD,2 个 TiDB),随着业务量的增长,按照需求添加 TiKV 或者 TiDB 实例。

高可用是 TiDB 的另一大特点,TiDB/TiKV/PD 这三个组件都能容忍部分实例失效,不影响整个集群的可用性。下面分别说明这三个组件的可用性、单个实例失效后的后果以及如何恢复。

大数据大数据组件tidb原理+实战篇(代码片段)

...SQL到TiDB1.3.TiDB概述1.4.数据库种类简介2.TiDB架构特性2.1.TiDB整体架构2.2.TiDB核心特性2.3.存储和计算能力3.TiDB安装部署3.1.TiDB-Local单机版3.2.TiDB-Docker集群版4.TiDB实践案例4.1.TiDB-SQL操作4.2.TiDB-读取历史数据4.3.TiDB整合 查看详情

猿创征文|国产数据库tidb架构特性(代码片段)

前言TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(HybridTransactionalandAnalyticalProcessing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、... 查看详情

猿创征文|国产数据库实战之使用docker部署tidb集群(代码片段)

...Docker部署TiDB集群一、TiDB介绍1.TiDB简介2.TiDB特性3.TiDB集群整体架构4.TiDB集群各部分介绍5.本次TiDB集群组件二、检查本地环境1.检查docker状态2.检查docker版本3.检查docker-compose版本三、下载tidb-docker-compose1.下载tidb-docker-compose2.检查文... 查看详情

猿创征文|国产数据库实战之使用docker部署tidb集群(代码片段)

...Docker部署TiDB集群一、TiDB介绍1.TiDB简介2.TiDB特性3.TiDB集群整体架构4.TiDB集群各部分介绍5.本次TiDB集群组件二、检查本地环境1.检查docker状态2.检查docker版本3.检查docker-compose版本三、下载tidb-docker-compose1.下载tidb-docker-compose2.检查文... 查看详情

猿创征文|国产数据库实战之使用docker部署tidb集群(代码片段)

...Docker部署TiDB集群一、TiDB介绍1.TiDB简介2.TiDB特性3.TiDB集群整体架构4.TiDB集群各部分介绍5.本次TiDB集群组件二、检查本地环境1.检查docker状态2.检查docker版本3.检查docker-compose版本三、下载tidb-docker-compose1.下载tidb-docker-compose2.检查文... 查看详情

网站数据仓库整体架构图及介绍

数据仓库数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(DecisionSupport)。其实数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给... 查看详情

tidb-使用tidbbinlog实现数据复制(代码片段)

...分为Pump和Drainer两个组件,以及binlogctl工具。TiDBBinlog整体架构注意:TiDBBinlog与TiDBv5.0版本开始引入的一些特性不兼容,无法一起使用,建议使用TiCDC替代TiDBBinlog。TiCDC在后面的文章中也会讲到。下面实现TIDB到Mysql... 查看详情

stonedbclass入门第二课:stonedb整体架构解析

StoneDB的整体架构分为三层,分别是应用层、服务层和存储引擎层。应用层主要负责客户端的连接管理和权限验证;服务层提供了SQL接口、查询缓存、解析器、优化器、执行器等组件;Tianmu引擎所在的存储引擎层是StoneDB的核心,... 查看详情

当大数据架构遇上tidb(代码片段)

作者介绍:胡梦宇,知乎核心架构平台开发工程师,大数据基础架构方向,主要工作内容是负责知乎内部大数据组件的二次开发和数据平台建设。前言一年前,知乎的大数据架构与TiDB首次相遇,那时我们... 查看详情

tidb的数据迁移工具现已开源

...log增量同步,有助于减少操作成本和简化错误处理流程。架构图如下所示:从架构图可以看到,DM包括三大组件:DM-master、DM-worker和dmctl。其中,DM-master管理和调度数据同步任务的操作、DM-worker执行特定的数据同步任务、dmctl则是... 查看详情

sqlserver整体架构——实例

所谓整体架构,这里是指SQLServer数据库系统正常工作和运行所必备的组件及其机制。整体上来讲,这主要包括实例(Instance)和数据库(Database)。在此基础上再进一步划分,实例由服务器上的相关内存区域和服务线程组成;数... 查看详情

mybatis整体架构

一、模块概览模块名称作用主要类反射模块封装JAVAAPI,易用,进行了缓存优化类型转换模块绑定实参及映射查询结果集日志模块定位BUG,解决瓶颈资源加载模块类加载器,确定类加载器使用顺序解析器模块Xpath,初始化解析mybati... 查看详情

tidb集群的可用性详解及tikvlabel规划

...统往往通过软件来实现对于硬件的容错,通过软件来保证整体系统的高可靠性。TiDB集群中包含了串-并联系统,表决系统等,相对于一般的分布式系统更为复杂,TiDB中所保存的数据的可用性由诸多因素控制,通过本篇文章的介绍... 查看详情

tidb查询优化及调优系列慢查询诊断监控及排查(代码片段)

...的通过EXPLAIN语句来查看诊断查询计划问题外,本章节主要会介绍通过TiDBSlowQuery慢查询内存表,以及TiDBDashboard的可视化Statements功能来监控和诊断慢查询。下载TiDB社区版咨询TiDB企业版免费试用TiDBCloud适用 查看详情

tidb入门+深入(代码片段)

目录一、概述1、从MySQL到TiDB2、简介1、OLTP和OLAP3、TiDB整体架构4、TiDB安装部署开发及测试环境生产环境5、TiDB-读取历史数据6、数据迁移-TiDBLightning一、概述数据库(DataBase)是按照数据结构来组织、存储和管理数据的仓库... 查看详情

kafkakafkaproducer整体架构概述及源码分析

...og.csdn.net/XU906722/article/details/104420045本文基于Kafka0.11版本2.整体架构2.1线程整个Kafka客户端由两个线程协调运行,即Main线程和Sender线程。在Main线程中由KafkaProducer创建消息,然后通过Interceptor、Serializer和Partitioner 查看详情

rocketmq架构原理及名词概念

这节主要讲述RocketMQ的整体架构,和常用术语解释。当我们接触一个新东西的时候,一定要知道他的原理,只有知道原理之后,才会产生问题。只有带着问题去读源码才会事半功倍。首先盗用官方的一张图片:(官方地址:http://... 查看详情

tidb在微众银行核心批量场景的实践

本文根据PingCAPDevCon2021上来自微众银行资深数据库架构师黄蔚的分享整理而成,主要阐述TiDB在微众银行的应用实践,包括微众银行选择TiDB的背景和TiDB的部署架构,以及TiDB在贷款核心批量场景的应用,最后分享了... 查看详情