专栏首页「3306 Pai」社区Apache顶级项目ShardingSphere最近都在干啥?

Apache顶级项目ShardingSphere最近都在干啥?

主题分布式数据库中间件Apache ShardingSphere架构演进

大纲

1、我们知道ShardingSphere已经成为Apache的顶级项目,那相较于之前,有没有新的挑战呢?

2、ShardingSphere作为客户端分库分表模型的代表,相较于传统Proxy模型的分库分表有什么优势吗?

3、你们团队最近在忙什么呢,有没有在研究秘密武器?

4、可以大概介绍下ShardingSphere典型的客户以及他们的规模吗?

kimmking 真名秦金卫,Apache Dubbo PMC/ShardingSphere Committer,前阿里巴巴架构师、某集团高级技术总监,阿里云MVP、腾讯TVP,《高可用可伸缩微服务架构:基于Dubbo和Spring Cloud》与《深入了解JVM 32讲》的合著作者,目前主要的工作是发展和建设ShardingSphere开源项目。

01

我们知道ShardingSphere已经成为Apache的顶级项目,那相较于之前,有没有新的挑战

Apache ShardingSphere (官网:https://shardingsphere.apache.org/)是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。

ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。它通过关注不变,进而抓住事物本质。关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。

ShardingSphere已经在2020年4月16日毕业成为Apache顶级项目(Apache官方发布从4.0.0版本开始),不仅作为Apache基金会的唯一一个数据库中间件项目,同时也是国人开源走向世界技术舞台的一面旗帜。

目前4.1.0版本是成为顶级项目后发布的第一个版本,最大的特性是引入了动态迁移,使得异构的系统不仅可以在线同步历史数据,还能够实时地迁移增量数据。这个功能对于目前的ShardingSphere生态体系来说,补充了非常重要的一环。从应用场景来看,对于那些想要从传统的单机或主从数据库迁移到分库分表的技术人员来说,也带来了福音,进一步简化了迁移成本和操作风险,能更快捷、更平滑地在现有系统里应用ShardingSphere,改善既有的数据库架构,从而提升数据库的容量、稳定性,以及治理能力。即将发布4.1.1版本还有进一步的完善和增强。

下一步,我们将吸收更多分布式数据库、云原生/Service Mesh等领域的概念与思想,依托着Apache顶级项目的社区资源和品牌影响力,朝着下一代数据库中间件的基础平台、标准制定者和最佳实践者的方向发展。

我们目前正在设计和实现5.0.0版本,这个版本将是一个新的里程碑。ShardingSphere的内核、API和SPI将被重新设计和重构,变成一个100%的组件化、模块化的可插拔微内核结构。这样从底层的数据存储、到中间层的事务,到上层的SQL接入和查询优化,数据库的高可用治理,以及这些模块里保护的具体功能特性都变成了一个个可以动态插拔和装配的组件。如果大家玩过乐高,就会知道可以用乐高搭出来任何东西。我们就是朝着设计一个数据库中间件的乐高机制和最小粒度的组件实现。这样,可以在某种程度上说,ShardingSphere的用户和二次开发者,可以基于这套体系,创造出任何充满想象力的数据库中间件。

02

ShardingSphere作为客户端分库分表模型的代表,相较于传统Proxy模型的分库分表有什么优势吗

首先需要说明的是,这是一个典型的误解:ShardingSphere不仅仅有客户端分库分表框架Sharding-JDBC,也有Proxy模型的服务端数据库中间件Sharding-Proxy。

从2016年于当当开源开始,Sharding-JDBC作为业界最好的开源客户端分库分表框架广为人知。客户端模型的目标在于“更好地使用数据库”,在JDBC接口的基础上做一层增强性的封装,将API和配置暴露给开发者,不仅实现了多种分库分表的功能,而且引入了读写分离,加密解密,分布式事务和APM支持等。应用程序直接通过JDBC操作数据库,对性能的影响最小,给与开发者的控制空间最大。一个不足之处就是,Java only,只能在Java环境(或JVM平台上的其他语言)使用,例如开发者要是用C# ADO.NET或者NodeJS、Python就无法用。

2018年随着张亮,落地到京东数科,Sharding-Proxy的第一个版本3.0.0发布。Proxy模型的目标则是“更像一个好用的数据库”,通过内部实现的MySQL/PostgreSQL协议接口,模拟一个MySQL/PostgreSQL server。这样用户就可以更方便的使用Proxy中间件,而不用关心具体的API和配置,对业务系统实现零侵入,同时各种编程语言和平台环境只要是有MySQL驱动,就能使用原来的Sharding-JDBC功能。同年年底,成为Apache孵化器项目。

2020年4月份,ShardingSphere正式毕业。毕业后的第一个版本4.1.0引入了Sharding-Scaling做自动化的动态迁移,加速用户从分库分表中间件或者其他中间件转化到Sharding-Proxy。

目前正在打磨下一代的5.0.0版本计划今年发布,目标是“一个更好的数据库体系”,朝着一个完善的乐高体系发展。

同时计划中的第三个产品Sharding-Sidecar也有望在今年发布,目标是实现“Database Mesh”,进而更方便地在云原生和Service Mesh/微服务体系下使用数据。

03

你们团队最近在忙什么呢?有没有在研究秘密武器

通过上面的信息,大家可以发现,ShardingSphere项目每年发布一个大版本;每个双数年,发布一个新产品。

一方面,最近团队正在紧锣密鼓地对4.x整体进行重新设计,达到5.0.0的第一个可用版本。用最短时间把核心和功能拆解成乐高的小积木,每一个都可以独立使用,但是按不同的方式拼装到一起,就会实现不同的效果。另一方便,在原有的MySQL/PostgreSQL的数据存储层和Proxy的计算层的基础上,通过完善分布式治理,引入“控制面板”设计,进一步完善Sharding-Proxy的整体集群管理,实现数据库和中间件的高可用治理,最终达到可以利用这个最新的架构设计,具备像搭积木一样去实现类似分布式数据库和云原生Database Mesh产品的这种能力。

另一方面,我们也在投入大量的资源去进一步优化现有的功能本身,特别是SQL的解析引擎,MySQL的兼容性和查询优化,分布式事务,可观测性等等。通过这些工作的不断推进,ShardingSphere将成为功能最完善、使用最方便、性能最高效的数据库解决方案,也终将使得现有的MySQL用户轻松一键迁入到ShardingSphere技术体系。

如果说有秘密武器的话,那么这两块工作应该就是我们的秘密武器。

04

可以大概介绍下ShardingSphere典型的客户以及他们的规模吗

目前登记在册的ShardingSphere用户包括京东商城,京东云,京东支付,搜狐,滴滴,B站,中国电信翼支付,中国民生银行,58同城,每日优鲜,首汽约车、海尔消费金融,马上消费金融,科大讯飞,拍拍贷,海康威视,唯品会,TCL,客如云,马蜂窝,好未来,斗鱼TV,携程、爱奇艺、汽车之家等等,涵盖了互联网电商、金融支付,生活服务,出行旅游,在线教育和文娱视频等多个行业领域的头部企业。

其中在京东集团有数百个应用系统使用了ShardingSphere,最大的使用场景在京东支付,涉及到700亿的数据。

且随着ShardingSpere的持续发展,这个名单和这些数字,都在不断的更新,ShardingSphere应用到更多的场景,作为支撑在业务系统之下的基础设施,服务于广大人民群众的衣食住行的方方面面,发挥着巨大的作用。

详细清单参见:https://shardingsphere.apache.org/community/cn/powered-by/

本文分享自微信公众号 - 3306pai(pai3306),作者:π小星

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 3306π武汉站嘉宾专访-斗鱼网络资深DBA赵飞祥

    网名 yumushui ,拥有多年一线传统行业和互联网数据库架构设计与运维经验。Oracle 11g OCM,对MySQL、Oracle、PostgreSQL、...

    [3306 Pai ] 社区
  • 「3306π」沪江:从 SQL Server 到 MySQL (一):异构数据库迁移

    本系列文章就是向大家介绍, 从 SQL Server 迁移到 MySQL 所面临的问题和我们的解决方案。

    [3306 Pai ] 社区
  • 开源分布式中间件 DBLE 快速入门指南

    DBLE 是企业级开源分布式中间件,江湖人送外号 “MyCat Plus”;以其简单稳定,持续维护,良好的社区环境和广大的群众基础得到了社区的大力支持;

    [3306 Pai ] 社区
  • 图解 | 傻傻分不清VR/AR/MR?第四波科技浪潮早来了

    导读:据国外媒体报道,消费者计算平台的演进并不是一条直线,而是波浪式地向前推进。个人电脑、互联网以及移动设备是前三波浪潮,每一次浪潮的发展速度更快,影响更大,更...

    钱塘数据
  • 7.26 VR扫描:苹果收购Intel部分手机调制解调器业务;Unity完成5.25亿美元融资

    近日,Intel宣布与苹果签订合约,后者将收购前者的大部分智能手机调制解调器业务。同时,Intel约有2200名员工将加入苹果。此外,收购的内容还包括:相关知识...

    VRPinea
  • 任天堂发布“Nintendo Labo:VR Kit”,这事儿有点意思

    与微软“Xbox + VR”同样备受关注的是:任天堂“NX+VR”。从2015年起,“江湖”中就一直有“任天堂NX VR主机的传说”。其中,自然也包括对于明星主...

    VRPinea
  • 深度 | 苹果揭秘“Hey Siri”的开发细节,原来不仅有两步检测,还能辨别说话人

    AI科技评论按:苹果的新一期机器学习开发日记来了~ 这次苹果介绍了通过讲话就能唤醒Siri的“Hey Siri”功能是如何从技术上实现的,同时也介绍了为了从用户...

    AI科技评论
  • 5.30 VR扫描:Oculus Go中国版,小米VR一体机将于5月31日发布;高通正式发布AR/VR专用芯片XR1

    VRPinea
  • [UWP]使用CompositionAPI的翻转动画

    在 使用GetAlphaMask和ContainerVisual制作长阴影(Long Shadow) 这篇文章里我介绍了一个包含长阴影的番茄钟,这个番茄钟在状态...

    dino.c
  • 12.7 VR扫描:苹果用户福利!冰冷的语言不及面对面地交谈的温暖,没有VR头显照样也能体验VR社交

    VRPinea

扫码关注云+社区

领取腾讯云代金券