学习
实践
活动
专区
工具
TVP
写文章
专栏首页「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

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:π小星
原始发表时间:2020-05-25
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • ShardingSphere 介绍与简单入门

    于是,我将 Apache ShardingSphere 产品介绍与开发入门通篇阅读了一遍。

    FoamValue
  • 架构师如何选型分布式定时任务

    当我们的业务服务需要定时的执行业务接口时,我们就需要考虑引入定时任务,那么问题又来了,我们是选择“分布式定时任务”呢,还是“本地Job”呢。

    35岁程序员那些事
  • Github顶级国产项目!京东白条是如何用ShardingSphere做数据分片的?

    之前的文章中,我曾经多次提到一个用于数据分片的开源项目 ShardingSphere :

    Guide哥
  • 4 天 7 条 PR,80% 代码覆盖率,开源是「内卷」还是修炼?

    炎热的夏天,开源摘星计划 2022 届的比赛还在火热的开展中。每天,来自全球的近 800 位开发者都在开源摘星活动群中,激情地聊着他们参与开源贡献的点点滴滴,近...

    腾源会
  • 时隔 4 年!ElasticJob 3.0.0 发布,王者归来。。

    点击关注公众号,Java干货及时送达 ElasticJob 简介 ElasticJob 是一个分布式调度解决方案,即分布式的定时任务框架,它由 2 个相互独立...

    Java技术栈
  • Apache ShardingSphere 社区的探索与拓展

    Apache ShardingSphere社区受邀参与了11月9日在清华大学举办的《Apache Event——走进Apache开源软件社区》的分享活动。在活动...

    开源社
  • ShardingSphere实现分库分表

      Apache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款...

    程序员云帆哥
  • 潘娟:从女工程师转变成开源商业化Infra公司创始人,痛并快乐着

    ‍ ‍ 「WeOpen Talk」是腾源会全新上线的“对话开源”内容专栏,每周为读者呈现一期与尖峰开源人物的精彩对话内容。在「WeOpen Talk」栏目中...

    腾源会
  • 知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    Enjoy233
  • ShardingSphere介绍

    ShardingSphere GitHub地址:https://github.com/apache/shardingsphere ShardingSphere ...

    itze
  • 分布式秒杀实战之订单数据分表

    一般来说电商的日订单都是百千万级甚至是亿万级别的了,小小的数据库肯定是撑不住的,这时候就要提前考虑分库分表了。

    小柒2012
  • sharding-jdbc金融支付项目中的应用(技术创作101训练营)

    初次接触shardingsphere是在2017年,那时候还叫sharding-jdbc,属于当当网。当时公司的支付项目改动升级,主要有如下两个问题。

    三复
  • 新版发布|ShardingSphere 5.0.0-beta 来了!

    SphereEx co-founder, Apache member, Apache ShardingSphere PMC, Apache brpc(Incub...

    SphereEx
  • 分库分表,我为什么要用Shardingsphere呢?

    分库分表推荐Spring Cloud Alibaba+Seata+Shardingsphere

    35岁程序员那些事
  • 【MySQL系列】真香!基于ShardingSphere-JDBC的MySQL读写分离

    为了减轻每台MySQL主机的访问压力,还可以对MySQL进行读写分离,实际上,主从复制和读写分离一般就是联合使用的。

    行百里er
  • Springboot2.x + ShardingSphere 实现分库分表

    之前一篇文章中我们讲了基于Mysql8的读写分离(文后有链接),这次来说说分库分表的实现过程。

    JAVA日知录
  • 潘娟 Keep open,Stay tuned 开源为我打开的全新世界 | TiDB Hackathon 2021 评委访谈

    距离 2022.1.8-9 比赛日,已不到两周时间,想必各位参赛选手已经摩拳擦掌,开始准备自己的项目了。

    PingCAP
  • FA10# 数据库组件功能设计点整理

    数据库中间件承担应用与数据库之间的粘合与润滑,数据库中间件设计的合理应用跑起来就丝滑,否则会拉胯。本文就常见数据库组件相关的功能设计点做个归纳整理:

    瓜农老梁

扫码关注腾讯云开发者

领取腾讯云代金券