NewSQL角度看Apache ShardingSphere
【IT168评论】近些年NewSQL概念盛行 , 国内外各大公司对NewSQL都有着不同的解读 。 本次ITPUB技术栈线上沙龙2020上 , 京东数科高级DBA潘娟分享了有关NewSQL理念、国内外产品架构的解读 , 以及ApacheShardingSphere的架构、特性、规划、开源社区 。
一、NewSQL的概念
NewSQL的概念 , 最开始来源于国外的一份商业分析报告 。 它是各种新的可扩展/高性能数据库的简称 , 这类数据库不仅具有NoSQL海量数据的存储管理能力 , 还保持了传统数据库支持ACID和SQL等特性 。
提及SQL , 很多朋友最先想到的就是MySQL数据库和PostgreSQL数据库 。 对我们来说 , 它其实一个单点、很可靠 , 有ACID事务 , 也有查询语言的关系型数据库 。 其中 , ACID事务和查询语言是我们最关心的两点 。
伴随互联网的蓬勃发展 , 数据量的持续膨胀 , NoSQL出现了 。 NoSQL泛指非关系型数据库 , 具备Scalability(扩展性)和Resilience(弹性) 。 扩展性是指可以无限的把一个单点变成一个集群 , 从而提升整个系统的可用性 。 弹性保证了在宕机集群崩溃后 , 数据的自动修复且上层业务无感知 。
那么就有人提出来了 , 我能不能既可以拥有像SQL的关系模型 , 拥有它的ACID事务 , 同时还拥有像NoSQL的扩展性、弹性伸缩 , 以及高可用性 。 于是 , NewSQL应运而生 , 它最开始的定义就叫做ScalabilitySQL 。
在分布式的场景中 , 没有办法同时保证Consistency(一致性)和Availability(可用性) , 以及分区的容错性 。 CAP原则就是 , 你只能保证整个系统更关注于强一致性 , 或者高可用性 。
二、ApacheShardingSphere的架构
ApacheShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈 , 它由JDBC、Proxy和Sidecar(规划中)这3款相互独立 , 却又能够混合部署配合使用的产品组成 。 它们均提供标准化的数据分片、分布式事务和数据库治理功能 , 可适用于Java同构、异构语言、云原生等各种多样化的应用场景 。
ApacheShardingSphere定位为关系型数据库中间件 , 旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力 , 而并非实现一个全新的关系型数据库 。 ApacheShardingSphere目前已提供数十个SPI作为系统的扩展点 , 仍在不断增加中 。
其次 , 用户真正能够接触三个产品 , 第一个产品叫ShardingSphere-JDBC , 它定位为轻量级Java框架 , 在Java的JDBC层提供的额外服务 。 它具备解析SQL、分片管理、分布式事务 , 脱敏等功能 。
第二个产品叫ShardingSphere-Proxy , 定位为透明化的数据库代理端 , 提供封装了数据库二进制协议的服务端版本 , 用于完成对异构语言的支持 。 适用于任何兼容MySQL/PostgreSQL协议的的客户端 , 可以管理数据库集群 。
三、功能介绍
仔细观察ShardingSphere的框架 , 我们不难发现中间件左侧的Sharding-Scaling , 它是一个提供给用户的通用的ShardingSphere数据接入迁移 , 及弹性伸缩的调度平台 。
JDBC的核心功能就是Orchestration , 即编排治理 , 配置集中化与动态化、数据治理 。 ShardingSphere提供了界面治理模块——Sharding-UI , 可以快速维护Sharding-Proxy集群 , 方便用户一键式的操作 。
推荐阅读
- 脑梗死|脑梗死和喝酒有没有关系呢?爱喝酒的朋友,应该看看
- 火星|拍摄11064张照片后,火星毅力号看到了什么?这次还真看到了
- 早餐的新吃法,“透明饺子”简单好学,孩子看了都超级爱吃!
- 五彩缤纷的卷饼,看着太有食欲啦,做法简单又好吃
- 孩子特爱吃的煎饼,颜色鲜艳,营养美味,2分钟出锅,看到就想吃
- 1碗面粉2个鸡蛋,教您做电饭锅面包,一看就会,简单好吃零失手
- 地球|地球是一颗多大的行星?看看这10张太阳系天体对比图
- 手把手教你做手抓饼,详细做法,新手看了想不会都难,和卖的一样好
- 玉米面也能做开花馒头,松软香甜,比面包还好吃,看完就能会
- 一看就会的几道硬菜,学会了你就是大厨
