首页 > 热点

带你近距离了解数据库分库分表中间件sharding-jdbc

2017年3月25日,由飞马网与中生代技术联合举办的技术嘉年华--软件技术领域顶级盛宴,将在北京隆重开幕。大会主题围绕着近两年火爆的云计算、大数据、区块链等热点技术展开,届时,将会有

作者:谭盼雨 | 2017-01-12 08:57:58

2017年3月25日,由飞马网与中生代技术联合举办的技术嘉年华--软件技术领域顶级盛宴,将在北京隆重开幕。大会主题围绕着近两年火爆的云计算、大数据、区块链等热点技术展开,届时,将会有多位技术牛人共赴这场技术盛宴。

近日,笔者有幸采访到了将会在技术嘉年华大会上做重要演讲的当当架构部负责人 张亮,他不仅为我们详细介绍了当当目前的所采用的的架构,重点介绍了当当开源的分布式作业调度框架elastic-job和数据库分库分表中间件sharding-jdbc自开源以来所取得的新进展,而且还给我们透露了他将在技术嘉年华会议上分享的内容,让我们先睹为快!

11.png

张亮,当当架构部负责人,推崇优雅和极简代码,擅长处理分布式,大数据,高并发等互联网场景。自14年加入当当架构部,先后负责应用框架dd、调度框架Elastic-Job和数据库分片中间件Sharding-JDBC的开发、落地以及开源,期间还负责消息中间件选型、技术白皮书撰写等工作。

当当架构演进

首先,张亮告诉我们,当当采用Mesos作为云化方案的调度平台,配合Marathon和自研work一起使用。他给我们介绍了当当系统架构的演进:作为一个已有17年发展史的企业,当当在2012年前,采用.net和c++开发,之后转型为java、php和c++的组合,其中以java居多,也正是因为如此,当当的大部分框架都是针对java的。

而开发类框架除了dd、Elastic-Job和Sharding-jdbc之外,还有用于服务治理的DubboX,它提供对RESTFul的支持也是为了解决异构语言的问题。此外,还有一些其他的治理辅助类系统,如限流系统、监控系统、SLA系统等。张亮表示,随着云化的深入进行,这些系统势必将重新洗牌,组合成更加健壮的基础构架。

关于开源

相信很多人都知道,当当于2015年9月及2016年1月分别开源了分布式作业调度框架elastic-job和数据库分库分表中间件--sharding-jdbc。那么经过这一年多的时间,这两个开源项目又有了哪些新的进展呢?

张亮表示,Elastic-Job早开源了3个月,进展更多些,目前的完成度比较高,如果用一个数字评估的话,应该接近70%。张亮还告诉笔者,Elastic-Job是项目的总称,实际上它是由两个子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。Lite版本适用于中小型的分布式场景,比较轻量,开发者更易于控制。Cloud版本更加适合用于私有云,它也是当当作业云的基石,它是一个Mesos的work,目前也得到了mesossphere的官方关注。2017年,Elastic-Job的主要目标是结合当当作业云累积的经验,将其打造的更加稳定。希望在未来的某个时刻,它能成为分布式调度的标准,让Lite成为替换Quartz,Cloud成为替换掉Chronos的存在。

而Sharding-JDBC虽然开源时间稍短,但由于数据库中间件同类产品的缺失,它吸引了更多的关注,在开源中国的2016年最受欢迎的国产开源项目的评选中排名17。张亮认为,Sharding-JDBC项目的复杂度比较高,且应用更加广泛,以后还有更加广阔的可提升空间,他认为目前的完成度仅30%,未来也会加紧步伐将它尽快完善。

2017年,Sharding-JDBC方面动作将会比较大。首先是通过SQL Parser的重写,让Sharding-JDBC脱胎换骨,变成一个更加简明清晰的优秀项目。然后会定位Sharding-JDBC的整个生态圈,希望分为不同的环路:

・ 一环用于处理JDBC相关,提升SQL和JDBC的兼容性;

・ 二环是与数据库相关但不属于JDBC的东西,比如柔性事务的完善,HA和数据迁移功能的开发等;

・ 三环是多租户等外围功能。Shariding-JDBC目前也有将其拆分为两个子项目的想法,分别是现在这种基于smart-client的Sharding-JDBC-Driver和未来要做的基于代理层的Sharding-JDBC-Server(或Sharding-JDBC-Proxy)。

关于开源,张亮说:“开源社区确实为我们提供了优秀的思路”,他表示,2017年将会继续把这两个产品持续完善,继续回馈开源社区。另外,他还透露出,当当计划在下半年实现服务云的落地,基于服务云的基础组件也许会是2017年的新开源项目。

对架构师的理解

作为一名混迹于架构圈中的老人,张亮也谈了自己的看法,他认为要想成为一名优秀的架构师,必须要做到以下几点:

一、首先就是要有强烈的意愿去成为一名优秀的架构师。因为架构师并非是个容易达成的职位,需要大量的学习和实践,只有坚持下来才有可能突破瓶颈。

二、其次是要培养自己对事物的抽象能力。张亮认为,在众多能力中,抽象能力最重要。能够通过经验和知识抽象出合理的系统、架构、程序是判断一个架构师是否合格的标准;

三、最后是综合能力的提升。这其中包括但不限于技术能力、执行力、决断力、交付能力、沟通能力等。架构师根据分工不同,对技能的要求也不同。作为基础架构、中间件的架构师,技术能力还是非常需要的。

最后,笔者得知,作为当当架构体系中重要组成部分的Sharding-jdbc,将会是张亮本次在技术嘉年华大会上的重要演讲内容之一,另外还包括处理互联网海量业务数据的思路和要点等。想知道具体他都会讲些什么吗?那就快来技术嘉年华现场吧,一听便知!



【责任编辑:谭盼雨】