【架构】NewSQL

文章目录

    • NewSQL
    • TiDB
      • TiDB 主要组件
      • 特点
      • 使用场景
      • 安装与部署
    • 推荐阅读

NewSQL

NewSQL是一种数据库管理系统(DBMS)的类别,它结合了NoSQL数据库的可扩展性和传统SQL数据库的事务一致性。具体来说,NewSQL数据库旨在解决传统关系型数据库在处理大规模并发事务时遇到的性能瓶颈和扩展性问题,同时保持了对SQL语言的支持和ACID(原子性、一致性、隔离性、持久性)事务属性。
在这里插入图片描述

以下是NewSQL的一些主要特征:

  1. 高性能:NewSQL数据库设计用于处理大量并发用户请求,能够在分布式环境中提供高吞吐量和低延迟。

  2. 可扩展性:NewSQL系统通常支持水平扩展(横向扩展),这意味着可以通过添加更多服务器来提升系统的处理能力,而非仅仅依赖于单台服务器的硬件升级。

  3. 一致性:尽管强调了扩展性和性能,NewSQL仍然坚持ACID事务特性,确保了数据的一致性和完整性。

  4. SQL兼容性:NewSQL数据库保留了SQL的使用习惯,这对于习惯了传统SQL数据库的开发人员来说是一个优点,因为不需要重新学习新的查询语言。

  5. 分布性:许多NewSQL解决方案采用了分布式架构,可以在多个节点之间复制和分区数据,从而提高可用性和容错能力。

NewSQL的目标市场主要是那些需要传统SQL数据库提供的强一致性和事务支持,但同时也需要NoSQL数据库提供的水平扩展能力的应用场景。NewSQL的例子包括但不限于TiDB(主流)、CockroachDB、FoundationDB等。

由于NewSQL是一个相对较新的概念,并且随着技术的不断发展,NewSQL数据库的具体实现和技术细节可能会有所不同。

在这里插入图片描述

TiDB

TiDB(Ti代表Titanium)是一款开源的分布式关系型数据库,它支持 SQL 语法,并兼容 MySQL 协议。TiDB 的设计目标是提供水平可扩展性、强一致性的事务处理、在线分析处理(OLAP)和在线事务处理(OLTP)的混合工作负载支持,以及高可用性。TiDB 采用了分布式架构,主要由以下几个组件构成:

TiDB 主要组件

  1. TiDB Server (TiDB)

    • 功能:作为 SQL 查询的入口点,处理 SQL 请求,执行 SQL 查询逻辑,并返回结果给客户端。
    • 角色:相当于 MySQL 中的 MySQL Server,负责处理客户端请求、执行 SQL 语句以及返回结果。
  2. TiKV

    • 功能:是一个分布式的 Key-Value 存储系统,用于存储数据。
    • 角色:类似于 NoSQL 数据库,但它支持事务处理和一致性协议(如 Raft)来保证数据的强一致性。
    • 特点:TiKV 是一个独立的项目,可以与其他系统集成使用。
  3. PD (Placement Driver)

    • 功能:是一个调度和管理组件,负责集群范围内的元数据管理,包括存储节点的状态管理、调度决策等。
    • 角色:类似于 ZooKeeper,用于管理集群状态和调度。
  4. TiFlash(可选):

    • 功能:是一个可选组件,为 TiDB 提供了列式存储的能力,可以加速 OLAP 查询。
    • 角色:TiFlash 可以与 TiKV 集成,使 TiDB 同时支持 OLTP 和 OLAP 工作负载。

特点

  • 水平可扩展性:TiDB 设计为水平可扩展,可以通过增加更多的 TiKV 节点来扩展存储容量和吞吐量。
  • 强一致性:通过 Raft 协议保证数据的一致性和可靠性。
  • 高可用性:即使部分节点失败,系统仍然可以继续正常工作。
  • SQL 兼容性:支持 SQL 语法,与 MySQL 协议兼容,使得迁移和使用变得更加容易。
  • 混合事务处理(HTAP):支持同时处理 OLTP 和 OLAP 工作负载,无需在不同的数据库之间切换。
  • 分布式事务:支持多行事务处理,确保数据操作的原子性、一致性、隔离性和持久性(ACID)。

使用场景

TiDB 适用于需要高可用、强一致性的分布式数据库场景,尤其是那些需要水平扩展能力和混合事务处理能力的应用,例如:

  • 金融行业:处理高频交易、实时结算等。
  • 电子商务:支持高并发的购物车、订单处理等。
  • 物联网:存储和处理大量的传感器数据。
  • 大数据分析:结合 TiFlash 进行实时分析和报表生成。

安装与部署

TiDB 的安装和部署相对简单,可以通过官方文档提供的指南来进行。一般而言,安装 TiDB 需要先安装 PD、TiKV、TiDB 以及可选的 TiFlash 组件。这些组件可以通过二进制包、Docker 容器或者 Kubernetes 部署。

推荐阅读

TIDB简介及TIDB部署、原理和使用介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/55124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# C++ 笔记

第一阶段知识总结 lunix系统操作 1、基础命令 (1)cd cd /[目录名] 打开指定文件目录 cd .. 返回上一级目录 cd - 返回并显示上一次目录 cd ~ 切换到当前用户的家目录 (2)pwd pwd 查看当前所在目录路径 pwd -L 打印当前物理…

[大语言模型-论文精读] 利用多样性进行大型语言模型预训练中重要数据的选择

[大语言模型-论文精读] 利用多样性进行大型语言模型预训练中重要数据的选择 论文信息: Harnessing Diversity for Important Data Selection in Pretraining Large Language Models Authors: Chi Zhang, Huaping Zhong, Kuan Zhang, Chengliang Chai, Rui Wang, X…

Techpoint(科点)—TP2912-GB 视频编码器芯片详解

写在前面 本系列文章主要讲解Techpoint(科点)—TP2912-GB 视频编码器芯片的相关知识,希望能帮助更多的同学认识和了解Techpoint(科点)—TP2912-GB 视频编码器芯片。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 此次架构中TP2912-GB作为视频编码器使用,下面将详细…

软件架构设计师教程 第15章 15.1-2 SOA概念及历史 笔记

15.1 SOA的相关概念 15.1.1 SOA的定义 面向服务的体系结构 (Service-Oriented Architecture,SOA), 从应用角度定义,SOA是一种应用框架,关注日常的业务应用,将它们划分为单独的业务功能和流程。 从软件的基本原理定义&#xff…

VIRTUOSO集成电路设计工具快捷键

VIRTUOSO集成电路设计工具快捷键 原理图设计中的快捷键 i 插入元件q 显示元件编辑窗口e 进入下层ctrl e 回到上层w 画连线t 插入网络名c 拷贝m 移动 版图设计中的快捷键 Z - 放大(Zoom In):按下 Z 键,然后在布局窗口中点击并拖…

linux下sudo执行的程序会有一个额外的进程的问题

当我们执行一个可执行文件时,有可能需要一些更高的权限,为此我们会用sudo ./test的方法执行,这时候我们通过ps aux | grep ./test去查看进程,会发现多出来一个 sudo ./test 的进程,该进程被杀死后,发现目标…

二叉树的迭代遍历

二叉树的迭代遍历指的是使用循环(迭代)的方法,而不是递归,来遍历二叉树的节点。迭代遍历通常需要使用辅助数据结构(如栈或队列)来帮助控制遍历的顺序。以下是几种常见的二叉树迭代遍历方法: 前…

【新闻转载】Storm-0501:勒索软件攻击扩展到混合云环境

icrosoft发出警告,勒索软件团伙Storm-0501近期调整了攻击策略,目前正将目标瞄准混合云环境,旨在全面破坏受害者的资产。 该威胁行为者自2021年首次露面,起初作为Sabbath勒索软件行动的分支。随后,他们开始分发来自Hive…

Linux中find命令详解

记录linux中find命令的详细用法。 文章目录 find命令简介基本语法常用选项-name-iname-type-size-mtime,-atime,-ctime-perm-user-group-delete-exec-printand or find --help find命令简介 find 是一个搜索目录树以查找一个文件或一组文件的程序。它遍历目录树并报告与用户规…

测试用例_边界值介绍(需求自动化生成用例方法论)

测试方法论之边界值测试:深入探索与实践 在软件开发过程中,测试是确保软件质量、稳定性和用户满意度的关键环节。在众多测试方法中,边界值测试(Boundary Value Testing, BVT)以其独特的视角和高效的覆盖率&#xff0c…

MySQL | excel数据输出insert语句

需求 在日常生产运维过程中,有很多需要进行人工梳理的excel数据,到了研发这一侧需要转为sql语句进行数据修正,如何输出insert插入语句? 方案 在空白列插入,选择需要的列 "INSERT INTO tab_name1 (name, desc) …

慢病中医药膳养生食疗管理微信小程序、基于微信小程序的慢病中医药膳养生食疗管理系统设计与实现、中医药膳养生食疗管理微信小程序的开发与应用(源码+文档+定制)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

Ubuntu环境下字体安装

本文介绍Ubuntu环境下字体安装。 软件(如Qt应用软件)开发过程中经常会涉及到字体的选择,有时候Ubuntu环境下并没有我们想要的字体,本文介绍常用字体及在Ubuntu环境下如何安装。 1.常用开源字体 有些字体商用并不是免费的&#…

支持语音方式问答,支持使用重排模型进行多路召回,MaxKB知识库问答系统v1.6版本发布

2024年9月29日,MaxKB开源知识库问答系统正式发布v1.6版本。 在v1.6社区版中,应用方面,MaxKB新增支持语音方式问答,支持使用重排模型进行多路召回,支持自定义全局变量,支持OpenAI Compatible API调用格式&a…

Mac通过ssh连接工具远程登录服务器( Royal TSX安装及使用)

一、Royal TSX软件下载地址 Royal Apps 二、Royal TSX 汉化 汉化包地址:GitCode - 全球开发者的开源社区,开源代码托管平台 三、基础配置 Royal TSX 是一款基于插件的应用,刚安装时还不具备使用条件,需要进行一些基础配置 1 安装基础插件…

什么是IIC通信协议?

IIC(Inter-Integrated Circuit)通信协议,又称为I2C(Inter-Integrated Circuit 2)协议,是一种广泛使用的串行通信协议。它由飞利浦半导体公司(现NXP Semiconductors)开发,…

k8s StorageClass 存储类

文章目录 一、概述1、StorageClass 对象定义2、StorageClass YAML 示例 二、StorageClass 字段1、provisioner(存储制备器)1.1、内置制备器1.2、第三方制备器 2、reclaimPolicy(回收策略)3、allowVolumeExpansion(允许…

SpringBoot项目创建

1. Spring 介绍 Spring的官网: https://spring.io Spring的官方提供很多开源的项目,我们可以点击上面的projects,看到spring家族旗下的项目, 按照流行程度排序为: Spring发展到今天已经形成了一种开发生态圈&#x…

10款物联网开源嵌入式操作系统对比分析

摘要 本文对目前市场上广受欢迎的10款物联网开源嵌入式操作系统进行了深度对比分析,包括Huawei LiteOS、RT-Thread、AliOS Things等。通过探讨这些操作系统的实时性、可扩展性、特点、运行要求、开发社区活跃度和应用领域等方面,帮助开发者更好地理解它…

单片机在控制和自动化任务中的应用场景广泛

单片机在控制和自动化任务中的应用场景广泛,以下是一些具体示例: 1. 家电控制 洗衣机:单片机用于控制洗衣周期、温度和水位。微波炉:控制加热时间、功率和用户界面。 2. 工业自动化 生产线监控:单片机用于控制传送…