分布式数据库 TiDB
一、TiDB介绍
与传统的单机数据库相比,TiDB具有以下优势:
纯分布式架构,拥有良好的扩展性,支持弹性的扩缩容
支持SQL,对外暴露MySQL的网络协议,并兼容大多数MySQL的语法,在大多数场景下可以直接替换MySQL
默认支持高可用,在少数副本失效的情况下,数据库本身能够自动进行数据修复和故障转移,对业务透明
支持ACID事务,对于一些有强一致需求的场景友好,例如:银行转账
具有丰富的工具链生态,覆盖数据迁移、同步、备份等多种场景
二、TiDB架构
在内核设计上,TiDB分布式数据库将整体架构拆分成了多个模块,各模块之间互相通信,组成完整的TiDB系统。
1、TiDB Server:SQL层,对外暴露MySQL协议的连接endpoint,负责接受客户端的链接,执行SQL解析和优化,最终生成分布式执行计划
TiDB层本身是无状态的,实践中可以启动多个TiDB实例,通过负载均衡组件(如LVS、HAProxy、或F5)对外提供统一的接入地址,客户端的
连接可以均匀的分摊在多个TiDB实例上以达到负载均衡的效果。TiDB Server本身并不存储数据,只是解析SQL,将实际的数据读取请求转发给底层的存储节点TiKV(或TiFlash)
2、PD(Placement Driver) Server:整个TiDB集群的元信息管理模块,负责存储每个TiKV节点实时的数据分布情况和集群的整体拓扑结构,提供TiDB Dashboard管控界面,并为
分布式事务分配事务ID。PD不仅存储元信息,同时还会根据TiKV节点实时上报的数据分布状态,下发数据调度命令给具体的TiKV节点,可以说是整个集群的“大脑”。此外,PD本身
也是由至少3个节点构成,拥有高可用的能力。建议部署奇数个PD节点。
3、存储节点
TiKV Server:负责存储数据,从外部看TiKV是一个分布式的提供事务的Key-Value存储引擎。存储数据的基本单位是Region,每个Region负责存储一个Key Range(从StartKey到
EndKey的左闭右开区间)的数据,每个TiKV节点会负责多个Region。TiKV的API在KV键值对层面提供对分布式事务的原生支持,默认提供了SI(Snampshot Isolation)的隔离级别,这也是
TiDB在SQL层面支持分布式事务的核心。TiDB的SQL层做完SQL解析后,会将SQL的执行计划转换为对TiKV API的实际调用。所以,数据都存储在TiKV中。另外,TiKV中的数据都会自动
维护多副本(默认为三副本),天然支持高可用和自动故障转移。
TiFlash:TiFlash是一类特殊的存储节点。和普通TiKV节点不一样的是,在TiFlash内部,数据是以列式的形式进行存储,重要的功能是为分析型的场景加速。
分布式数据库 TiDB相关推荐
- 分布式数据库TiDB是如何结合OLTP和OLAP的?
TiDB是一款开源.云原生.MySQL兼容的分布式数据库,可以处理混合事务和分析处理(HTAP)工作负载.它是"NEWSQL"关系数据库的一员,被设计为方便大规模部署.也许有人想知 ...
- Zabbix+分布式数据库TiDB实现分布式数据库监控
Zabbix+分布式数据库TiDB实现分布式数据库监控 一.Tidb的简介 1.什么是TiDB 2.TiDB 整体架构 2.主要模块简介 1) TiDB Server 2) PD Server 3) ...
- 论分布式数据库TiDB架构的“存”与“算”
作者:何朝洋 原文来源: https://tidb.net/blog/57ed0da1 在云计算基础设施IaaS服务中,"存"与"算"的分界是清晰的,客户会分别 ...
- 最火的HTAP数据库 京东云新一代分布式数据库TiDB架构揭秘
作者丨京东智联云数据库团队 2020年伊始,一场突如其来的新冠疫情, 席卷了华夏大地.为了抵抗疫情,全国人民众志成城,共同抗疫.疫情期间,各行各业受到了巨大影响,多数线下服务和活动基本陷入了停滞状态. ...
- 分布式数据库——TiDB的介绍和基本原理
1.TiDB 介绍 1.1 TiDB 介绍 1.1.1 TiDB 是什么? TiDB 是一个分布式 NewSQL 数据库.它支持水平弹性扩展.ACID 事务.标准 SQL.MySQL 语法和 MySQ ...
- 分布式数据库TiDB介绍
TiDB 是一款定位于在线事务处理 / 在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,实现了一键水平伸缩,强一致 ...
- PingCAP 开源分布式数据库 TiDB 论文入选 VLDB
8 月 31 日 - 9 月 4 日,第 46 届 VLDB 会议以线上直播的方式举行(原定于日本东京召开),PingCAP 团队的论文<TiDB: A Raft-based HTAP Data ...
- 流量和延迟减半!挑战分布式数据库 TiDB 跨数据中心难题
众所周知,在对可用性要求极高的行业领域(比如金融.通信),分布式数据库需要跨地域的在多个数据中心之间建立容灾以及多活的系统架构,同时需要保持数据完整可用.但这种方式同时也带来了一些问题: 跨地域的网络 ...
- 保姆级分布式数据库 TiDB 6.0 集群安装手册
作者: JiekeXu 原文来源: https://tidb.net/blog/94c2b44c 之前学习 TiDB 的时候一直想着要自己安装一套 TiDB 集群,近期由于新换了笔记本,配置还算凑合, ...
最新文章
- LeetCode: 106. Construct Binary Tree from Inorder and Postorder Traversal
- 开发人员拟在澳洲建立一座价值5000万美元的BCH科技园
- 互联网分布式架构--演进过程
- dxf转pdf linux,4个最好的PDF转DXF格式的在线转换器
- 让我们一起摇摆 Turnipbit体感遥控车
- Android WebView 开发详解(一)
- Java进阶02 异常处理
- ideatomcat老是运行以前的项目_日“吞”150吨垃圾,禅城集中式餐厨垃圾处理项目启用...
- 构建一个ASP.NET Wiki来解释TDD
- jpype,jpython调用jar包中jdk的问题.
- Zabbix agent批量自动部署
- SQL中 ROW_NUMBER 函数的用法
- ios加密算法AES
- excel合并两列内容_EXCEL数据合并、批量添加内容知识,高手嫌弃,新手太需要...
- vue项目- v-lazy懒加载 图片没有出来之前 loding的图标占位
- 利辛县腾讯服务器维护,腾讯内容开放平台
- 想知道添加水印的软件哪个好?这2款软件简单又实用
- 编码通信与魔术初步(一)——通信浅谈
- AVFoundation开发秘籍笔记-03资源和元数据
- mysql iops nvme_硬盘性能指标之一的IOPS,今天带你看懂
热门文章
- 巫师之昆特牌手游服务器中断连接,巫师之昆特牌10月11日网络维护 掉线处理办法...
- 宝藏级UI组件库:FirstUI,微信小程序版+uniapp版双版至V1.5.0,完美支持vue3
- 用python庆祝生日_古天乐50大寿,郑秀文杜琪峰设宴庆祝,网友重提30年前那件事...
- WebGL开发:加载图片配准
- Java学习笔记(四)——接口
- Swagger使用教程及Swagger增强工具knife4j
- web安全渗透测试介绍与实际操作典例分析
- 转 ORACLE CASE WHEN 及 SELECT CASE WHEN的用法
- 短视频创作,变现的建议、变现方式和举例,建议收藏反复阅读-上
- miniui不显示textbox边框_黄金比例 16:10 显示器,还没有成为过去式