专栏首页IT民工闲话Sharding-JDBC往事

Sharding-JDBC往事

2015年夏天我们在北京静安中心12层当当架构部启动自研数据库中间件项目的时候,完全没想过3年多之后,这个项目会成为首个加入Apache基金会的分布式数据库中间件开源项目,并在超过60家公司的系统中投入应用。

Apache ShardingSphere,发端于Sharding-JDBC,记得当年为了取名字,张亮颇为纠结了几天,叫Shard还是Sharding?SQL还是JDBC?最后命名为Sharding-JDBC。如今,张亮在京东数科组建团队,继续主导Apache ShardingSphere项目,发布了3.0版本,产品生态圈进一步扩展,Sharding-Proxy已成型,Sharding-Sidecar正在孵化中,Apache ShardingSphere将支持云原生,成为金融云上的数据库服务,未来发展令人期待。而我呢,离开当当整整两年,回首往事,仿佛就在昨天,但又很是遥远,曾经的同事们也星散四方,在各自的道路继续向前,有着更好的发展。

向前追溯,这一切的缘起是在2014年,那时当当架构部招兵买马,引进多名架构师,包括沈理、张亮、邓学祥、董四辈、池田、吴翊以及年底来的曹昊,我们以技术委员会的名义发起针对互联网主流技术架构的调研,包含了SOA服务框架、定时任务管理、消息队列、数据库中间件几个专题,以此为契机推动当当技术架构转型升级。当时开源的数据库中间件已经有MyCat、Corba、TDDL、Atlas、Fabric,我们进行了对比分析,因为成熟度不甚理想,且无紧迫需求,并未确定采用开源产品。在技术VP震平支持下,我们开发应用框架ddFrame,其中SOA采用了沈理二次开发的DubboX,定时任务采用了TBSchedule,数据库部分dd-rdb则是自己开发的,当时还只是个雏形。待到2015年我们的自研分布式定时任务框架elastic-job开源发布后,就将下一阶段的攻坚目标转移到数据库中间件上。自研数据库中间件技术难度极高,经过权衡决定先易后难,先开发SmartClient方式的轻量级组件,实现标准的JDBC,这样迁移成本低,架构简洁可控,Proxy方式待条件成熟再挑战,毕竟数据库中间件的最高境界是透明无感知,换句话说就是自己设计搭建一套数据库系统,得稳定可靠性能优异,谈何容易!好在机缘巧合,我们招聘到了在数据库领域有深入钻研的高洪涛加入,恰逢当当踌躇几年之后决定重构WMS和TMS系统需要分库分表解决方案,天时地利人和,经过张亮、高洪涛、曹昊、岳令几个月的辛勤开发和反复测试,Sharding-JDBC应运而生闪亮登场!成型之后,顺理成章的成为当当架构部第三个开源产品。在当当那几年,我们坚持做了很多自认为正确的事,时过境迁物是人非,内部的系统不知变成了什么样子,好在如今三个开源项目都已开花结果,DubboX提交回了Apache Dubbo,算是认祖归宗,Elastic-Job升级成了Elastic-Job-Cloud。

做开源项目并不容易,涉及分布式数据持久化的项目更不容易,必须高标准严要求,张亮作为灵魂人物,发挥了不可替代的作用,他对技术的完美追求和代码洁癖,导致初期的产品经历过多次代码重构,这一点,对比项目总代码量和变更量就可见一斑,相信参与项目的每个成员都有切身体会。反复打磨精益求精打造出了过硬的产品,积累起了良好的口碑,也最终获得了国际水平的认可,在此感谢和祝贺项目所有的参与者和使用者,我也与有荣焉。

进入Apache基金会是一个里程碑,意味着更大责任和更高要求。项目最终会迭代进化到怎样的状态,我们拭目以待!做开源项目我的最大遗憾是没有带动更多的当当同事参与,不知道是否有人有相同感触,好在开源精神就是自由开放,无论何时参与进来都不晚。欢迎对分布式数据库中间件感兴趣的同学,都来关注Apache ShardingSphere,参与其中,贡献代码,什么时候郁闷了也可以拍着胸脯自信的说“哥参与过Apache的开源项目”,收获一片崇拜,心头暗爽之后闷头继续改Bug写Bug……


ShardingSphere自2016开源以来,不断精进、不断发展,被越来越多的企业和个人认可:在Github上收获5000+的star,2000+forks,60+公司企业的成功案例。此外,越来越多的企业和个人也加入到Sharding-Sphere的开源项目中,为它的成长和发展贡献了巨大力量。

项目地址:

https://github.com/sharding-sphere/sharding-sphere/

ShardingSphere近期相关计划安排是什么呢?欢迎大家来github围观、留言!

https://github.com/sharding-sphere/sharding-sphere/issues/1189

更多信息请浏览官网:

http://shardingsphere.io/

本文分享自微信公众号 - IT民工闲话(ITCrossTalker),作者:史海峰

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

原始发表时间:2018-11-23

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 给微信&豆瓣产品提建议V0.0.1

    本民工并非产品经理,仅作为非典型用户,从个人痛点角度提功能建议,想到啥说啥,思考并不成熟,请各位产品经理高抬贵手,别用PRD标准来挑毛病,欢迎交流拍砖。

    用户5829009
  • 从烽火台到物联网

    虽然我们还不能完全掌握生命的机理,但基于对基因的理解,我们知道一切生命体的核心都在于信息,是信息载体,也是信息处理器。

    用户5829009
  • 架构师快问快答2

    导语 | 上月应腾讯云+社区邀请,参加云+社区沙龙online,与李力老师和孙玄老师坐而论道,直播《如何成为一名优秀的架构师》,讨论探讨架构师成长话题。直播时在...

    用户5829009
  • 重新审视SqlDataReader的使用

          ADO.NET 1.x 利用SqlDataReader读取数据,针对每个结果集需要一个独立的连接。当然,你还必须管理这些连接并且要付出相应的内存和潜...

    张善友
  • 通过自研数据库画像工具支持“去O”评估

    “去O”,是近些年来一直很火的一个话题,随之也产生了各种疑惑,包括现有数据库评估、技术选型等。去O是项系统工程,需要做好充分的评估。本文通过自研工具,生成数据库...

    宜信技术学院
  • 三谈去O之“数据库画像”

    很多公司在考虑去O的时候,经常面临这样的问题—"对自己的数据库不够了解",也不免有这样一些疑惑:

    用户5548425
  • Skype for Business Server 2015 后端数据库配置镜像见证(mirroring witness)

    早期部署Skype for Business Server 2015后端数据库采用2台并使用镜像,未配置见证数据库,当遇到主数据库宕机时,需要手动迁移数据库,现...

    杨强生
  • 数据库的概念和操作、T-SQL语言(数据库学习)

    SQL是结构化查询语言,集数据定义、数据查询、数据操纵和数据控制功能于一体的语言。

    营琪
  • 牛逼哄哄的数据库连接池,底层原理是个啥?

    这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。

    Java技术栈
  • 数据库连接池极简教程

    一,常规数据库连接 ? 常规数据库连接一般由以下六个步骤构成: 装载数据库驱动程序; 建立数据库连接; 创建数据库操作对象 访问数据库,执行sql语句; 处理返...

    架构师小秘圈

扫码关注云+社区

领取腾讯云代金券