暮年|NewSQL角度看Apache ShardingSphere
【IT168评论】近些年NewSQL概念盛行 , 国内外各大公司对NewSQL都有着不同的解读 。 本次ITPUB技术栈线上沙龙2020上 , 京东数科高级DBA潘娟分享了有关NewSQL理念、国内外产品架构的解读 , 以及Apache ShardingSphere的架构、特性、规划、开源社区 。
▲京东数科高级DBA&Apache ShardingSphere PMC 潘娟
嘉宾简介:主要负责京东数科分布式数据库开发、数据库运维自动化平台开发等工作 。 曾负责京东数科数据库自动化平台设计与开发 , 现专注于Apache ShardingSphere分布式数据库中间件平台的开发 。 主要在分布式数据库、开源、分布式架构等相关领域进行探索 。 多次受邀参加数据库&架构领域的相关会议并进行分享交流 。
一、NewSQL的概念
NewSQL的概念 , 最开始来源于国外的一份商业分析报告 。 它是各种新的可扩展/高性能数据库的简称 , 这类数据库不仅具有NoSQL海量数据的存储管理能力 , 还保持了传统数据库支持ACID和SQL等特性 。
提及SQL , 很多朋友最先想到的就是MySQL数据库和PostgreSQL数据库 。 对我们来说 , 它其实一个单点、很可靠 , 有ACID事务 , 也有查询语言的关系型数据库 。 其中 , ACID事务和查询语言是我们最关心的两点 。
伴随互联网的蓬勃发展 , 数据量的持续膨胀 , NoSQL出现了 。 NoSQL泛指非关系型数据库 , 具备Scalability(扩展性)和Resilience(弹性) 。 扩展性是指可以无限的把一个单点变成一个集群 , 从而提升整个系统的可用性 。 弹性保证了在宕机集群崩溃后 , 数据的自动修复且上层业务无感知 。
那么就有人提出来了 , 我能不能既可以拥有像SQL的关系模型 , 拥有它的ACID事务 , 同时还拥有像NoSQL的扩展性、弹性伸缩 , 以及高可用性 。 于是 , NewSQL应运而生 , 它最开始的定义就叫做Scalability SQL 。
在分布式的场景中 , 没有办法同时保证Consistency(一致性)和Availability(可用性) , 以及分区的容错性 。 CAP原则就是 , 你只能保证整个系统更关注于强一致性 , 或者高可用性 。
综上所述 , NewSQL是为了综合SQL和NoSQL的特性 。 它的存在并不是完全颠覆了CAP理论 , 而是需要基于这套理论 , 根据我们自身的实际情况 , 选择一个Consistency和Availability之间的平衡点 。
对于用户来说 , NewSQL其实就是A single logical DB , 即单个逻辑数据库 。 从开发的角度 , NewSQL具有New Architecture(新架构)、Transparent Sharding(透明化分片中间件)、Database as a Service(云数据库)三种形态 。
二、Apache ShardingSphere的架构
Apache ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈 , 它由JDBC、Proxy和Sidecar(规划中)这3款相互独立 , 却又能够混合部署配合使用的产品组成 。 它们均提供标准化的数据分片、分布式事务和数据库治理功能 , 可适用于Java同构、异构语言、云原生等各种多样化的应用场景 。
Apache ShardingSphere定位为关系型数据库中间件 , 旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力 , 而并非实现一个全新的关系型数据库 。 Apache ShardingSphere目前已提供数十个SPI作为系统的扩展点 , 仍在不断增加中 。
如上图所示 , 这是Apache ShardingSphere最新的部署框架 。 Apache ShardingSphere最开始定位于NewSQL的中间件 , 后面它的盘子越来越大 , 逐渐超越了中间件的范畴 , 但又未达到新架构的范畴 , 处在一个中间的状态 。
推荐阅读
- 景凡育儿经|从非神话传说的角度分析“刘邦斩白蛇”事件的来龙去脉及成因
- 校园风云|也许很简单,看图猜成语:换个角度看
- 暮年|美国丢人丢大发了,央视正式曝光
- 给你说个车|丰田是如何跟大众拉开差距的?,从造车工艺的角度看
- 暮年央视正式曝光,美国丢人丢大发了
- 科学|有一些科学家从另一个角度阐释了人类存在于宇宙的意义
- 行业互联网南方电网高级技术专家黄莹:两个角度看海上风电直流送出技术发展方向
- 反思卷积神经网络:图像角度泛化上的困难重重
- 奥迪A6|从车主的角度,对比宝马5系、奔驰e级、奥迪a6!
- 人人都是产品经理从系统的角度思考:做一看二想三
