旗下微信矩阵:

京东数科主导的Apache 项目成*项目

由京东数科主导的Apache ShardingSphere 项目成为2020年首个从Apache 孵化器毕业的顶级项目。
2020-09-18 15:40 · 互联网     

由京东数科主导的Apache ShardingSphere 项目成为2020年*从Apache 孵化器毕业的*项目。值得一提的是,该项目也是业界*进入Apache 基金会的分布式数据库中间件项目。

嘉宾简介:主要负责京东数科分布式数据库开发、数据库运维自动化平台开发等工作。曾负责京东数科数据库自动化平台设计与开发,现专注于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作为系统的扩展点,仍在不断增加中。

目前,ShardingSphere项目已经演变成为较成熟的分布式生态系统,并被120多家公司采用。值得一提的是,最近在世界范围内流行的疫情并没有对它产生太多影响,相反在这期间,作为符合企业需求的社区,ShardingSphere仍然保持着多元化且充满活力、积极运作的状态。它的最终目的不仅仅是为了对京东数科做出贡献,更深远的意义在于它对整个行业与互联网、甚至是全社会和全世界起到的影响和作用。



(免责声明:本文转载自其它媒体,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。请读者仅做参考,并请自行承担全部责任。)