首页 > 数据库 >【架构】NewSQL

【架构】NewSQL

时间:2024-09-25 08:50:23浏览次数:8  
标签:架构 数据库 TiDB 事务处理 一致性 SQL NewSQL

文章目录

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部署、原理和使用介绍

标签:架构,数据库,TiDB,事务处理,一致性,SQL,NewSQL
From: https://blog.csdn.net/weixin_44231544/article/details/142448746

相关文章

  • 架构师手写代码:分享数据库原子性与一致性实现方案(不再背概念)
    数据库事务的原子性和一致性是数据库管理系统(DBMS)中确保数据完整性和可靠性的两个关键属性。下面是这两个属性的基本概念和实现逻辑:肖哥弹架构跟大家“弹弹”数据库设计技巧,关注公号回复'mvcc'获得手写数据库事务代码欢迎点赞,点赞,点赞。关注公号Solomon肖哥弹架构获取......
  • 产品架构图
    产品架构图是一种关键工具,它能够帮助产品经理从宏观角度理解和展示产品结构。本文详细介绍了产品架构图的重要性和绘制方法,提供了实用的技巧和示例。之前我对产品架构图没有深刻的认识。当第1次开始从0做一个系统级别产品时,我需要一个东西能呈现出整个产品的全部内容,数据......
  • 【系统架构设计师】专题:系统质量属性和架构评估
    更多内容请见:备考系统架构设计师-核心总结目录文章目录一、质量属性概念1、开发期质量属性2、运行期质量属性二、面向架构评估的质量属性三、质量属性场景描述四、系统架构评估1、系统架构评估中的重要概念2、系统架构评估方法(1)`软件架构分析方......
  • 如何开发数字药店与医保购药APP:技术架构与实现细节
    本文将深入探讨数字药店与医保购药APP的技术架构及其实现细节,帮助开发者更好地理解该领域的技术需求。 一、技术架构概述数字药店与医保购药APP的技术架构通常可以分为以下几个层次:1.前端层:-用户界面-用户体验2.中间层:-API网关-业务逻辑层3.后端层:-数据库-微服务架构 4.数据层:-数......
  • 可编辑PPT | 企业架构(EA)治理+IT现状评估+业务能力构建项目解决方案
    在当今数字化时代,企业架构(EnterpriseArchitecture,EA)是企业实现战略目标和提升竞争力的关键。本文涵盖了企业架构设计、IT现状诊断以及业务能力构建设计规划等多个方面。一、企业架构设计咨询项目是企业实现战略转型和创新发展的关键步骤。它通过全面分析和规划,帮助企业构......
  • 详解Diffusion扩散模型:理论、架构与实现
    本文深入探讨了Diffusion扩散模型的概念、架构设计与算法实现,详细解析了模型的前向与逆向过程、编码器与解码器的设计、网络结构与训练过程,结合PyTorch代码示例,提供全面的技术指导。关注TechLead,复旦AI博士,分享AI领域全维度知识与研究。拥有10+年AI领域研究经验、复旦机器人智......
  • 电商平台的积分激励体系设计与架构
    广告电商系统的开发和模式架构分析中的积分模型是一个核心组成部分,它通过将广告观看与积分奖励机制相结合,为用户提供了更加丰富的参与方式和更多的价值回报。以下是对广告电商系统中积分模型的详细分析一、积分模型概述积分模型在广告电商系统中扮演着重要角色,它通过设定一系列积分......
  • kafka集群架构与原理
    前言    这次我们从消息队列开始讨论。生产者-消费者模型中间需要一个消息队列,以存储生产者的产品。对传统的消息队列来说,它支持点对点(P2P)和发布/订阅(Pub/Sub)两种消息模型。在点对点模型中,消息被发送到一个队列,并且只有一个消费者可以消费该消息。在发布/订阅模型中,消......
  • 架构之道:如何有效控制对象访问权
    架构之道:如何有效控制对象访问权代理架构概述代理模式(ProxyPattern)是一种常用的设计模式,其主要功能是提供一个对象的替代品或占位符,从而控制对该对象的访问。这种模式在软件开发中尤为重要,特别适用于那些创建成本较高或资源受限的对象。作为结构型模式的一种,代理模式通过创建一个......
  • 架构设计:系统间通信(17)——服务治理与Dubbo 中篇(分析)
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......