TiDB-入门简介

摘要:
TiDB适用于各种应用场景,如高可用性、高一致性要求和大数据规模。此外,还有用于解决复杂OLAP需求的TiSpark组件和用于简化云部署管理的TiDBOperator组件。作为TiDB中解决用户复杂OLAP需求的主要组件,它直接在TiDB存储层上运行SparkSQL,集成TiKV分布式集群的优势,并集成到大数据社区生态系统中。它结合了云原生社区中容器排列的最佳实践和TiDB的专业运维知识,集成了一键部署、多集群混合、自动运维和故障自愈的能力,大大降低了用户使用和管理TiDB的门槛和成本。

简介

TiDB 是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品。它兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。并提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。

架构

主要包括三个核心组件:TiDB ServerPD ServerTiKV Server。此外,还有用于解决复杂OLAP需求的TiSpark组件和简化云上部署管理的TiDB Operator组件。
architecture

职责

TiDB Server

SQL 层,对外暴露 MySQL 协议的连接 endpoint,负责接受客户端的连接,执行 SQL 解析和优化,最终生成分布式执行计划。TiDB 层本身是无状态的,实践中可以启动多个 TiDB 实例,通过负载均衡组件(如 LVS、HAProxy 或 F5)对外提供统一的接入地址,客户端的连接可以均匀地分摊在多个 TiDB 实例上以达到负载均衡的效果。TiDB Server 本身并不存储数据,只是解析 SQL,将实际的数据读取请求转发给底层的存储节点 TiKV(或 TiFlash)

Placement Driver (PD)

整个 TiDB 集群的元信息管理模块。

  • 负责存储每个 TiKV 节点实时的数据分布情况和集群的整体拓扑结构,提供 TiDB Dashboard 管控界面,并为分布式事务分配事务 ID。
  • PD 不仅存储元信息,同时还会根据 TiKV 节点实时上报的数据分布状态,下发数据调度命令给具体的 TiKV 节点。
  • PD 由至少 3 个节点构成,拥有高可用的能力。PD 通过 Raft 协议保证数据的安全性。Raft 的 leader server 负责处理所有操作,其余的 PD server 仅用于保证高可用。建议部署奇数个 PD 节点。

存储节点

TiKV Server

负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range(从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。TiKV 的 API 在 KV 键值对层面提供对分布式事务的原生支持,默认提供了 SI (Snapshot Isolation) 的隔离级别,这也是 TiDB 在 SQL 层面支持分布式事务的核心。TiDB 的 SQL 层做完 SQL 解析后,会将 SQL 的执行计划转换为对 TiKV API 的实际调用。所以,数据都存储在 TiKV 中。另外,TiKV 中的数据都会自动维护多副本(默认为三副本),天然支持高可用和自动故障转移。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度。

TiSpark

TiFlash 是一类特殊的存储节点。和普通 TiKV 节点不一样的是,在 TiFlash 内部,数据是以列式的形式进行存储,主要的功能是为分析型的场景加速。它作为 TiDB 中解决用户复杂 OLAP 需求的主要组件,将 Spark SQL 直接运行在 TiDB 存储层上,同时融合 TiKV 分布式集群的优势,并融入大数据社区生态。

TiDB Operator

提供在主流云基础设施(Kubernetes)上部署管理 TiDB 集群的能力。它结合云原生社区的容器编排最佳实践与 TiDB 的专业运维知识,集成一键部署、多集群混部、自动运维、故障自愈等能力,极大地降低了用户使用和管理 TiDB 的门槛与成本。

核心特性

  • 方便灵活水平方式扩缩容
  • 云原生分布式数据库
  • 兼容MySQL 5.7协议

免责声明:文章转载自《TiDB-入门简介》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用HTML5里的window.postMessage在两个网页间传递数据vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Redis——哨兵(sentinel)

前言 Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化。 本文将要介绍的哨兵,它基于Redis主从复制,主要作用便是解决主节点故障恢复的自动化问题,进一步提高系统的高可用性。 一、作用和架构 1.  作用 在介绍哨兵之前,首先从宏观角度回顾一下Redis实现高可用相关的技术。它们包括:持久化、复制、哨兵...

Nginx负载均衡高可用---架构

1. Nginx负载均衡高可用 首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现web服务端的高可用。 Keepalived以VRRP协议为实现基础,用VRRP协议来实现高可用性(HA).VRRP (Virtual Router Redun...

Hadoop组件之-HDFS(HA实现细节)

NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。 因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop...

为什么要学数据库原理?

只会写代码的是码农;学好数据库,基本能混口饭吃;在此基础上再学好操作系统和计算机网络,就能当一个不错的程序员。如果能再把离散数学、数字电路、体系结构、数据结构/算法、编译原理学通透,再加上丰富的实践经验与领域特定知识,就能算是一个优秀的工程师了。 计算机其实就是存储/IO/CPU三大件; 而计算说穿了就是两个东西:数据与算法(状态与转移函数)。常见的软件应...

携程结合用户画像

用户画像作为“大数据”的核心组成部分,在众多互联网公司中一直有其独特的地位。作为国内旅游OTA的领头羊,携程也有着完善的用户画像平台体系。目前用户画像广泛用于个性化推荐,猜你喜欢等;针对旅游市场,携程更将其应用于“房型排序”“机票排序”“客服投诉”等诸多特色领域。 本文将从目的,架构、组成等几方面,带你了解携程在该领域的实践。 1.携程为什么做用户画像...

SpringBoot2.0+SpringCloud Eureka搭建高可用注册中心(Eureka之二)

上一篇中提到用SpringBoot2.0+Eureka搭建服务注册中心和服务提供者,详情参考: https://www.cnblogs.com/SysoCjs/p/10127448.html         现在讲一下SpringCloud+Eureka搭建高可用注册中心。在微服务架构的分布式环境中,必须充分考虑可能会发生的故障情况,所以生产环境必须对各个...