温绍锦:初心不改的阿里初代开源人 | 码云封面人物第 18 期

1,434 阅读7分钟

本期嘉宾

温绍锦 :阿里巴巴第一代开源人,花名高铁,阿里巴巴著名开源项目 fastjsonDruid 创始人,目前担任阿里云产品 Data Lake Analytics 技术负责人。
Druid :Java 语言中最好的数据库连接池,Druid 能够提供强大的监控和扩展功能。
fastjson :阿里巴巴的开源 JSON 解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。

正文

先做个自我介绍吧,花名“高铁”有什么特殊的含义吗?

我叫温绍锦,2010 年加入阿里,花名是高铁,有多重含义,其中一个含义就是代码运行的速度快。现在是阿里云产品 Data Lake Analytics 的技术 Leader。

Druid 和 fastjson 两个项目产生的背景是什么?

2010年在阿里巴巴 B2B平台技术部做应用监控系统 Dragoon 时,需要一个高性能的 JSON 解析器和带监控功能的连接池,于是 fastjson 和 Druid 就诞生了。

输入图片说明

- 关于 Druid 和 fastjson -

跟其他数据库连接池相比,为监控而生的 Druid 有什么不一样的特性吗?Druid 最近对于 sql parser 以及监控做了那些提升以及优化呢?

在2010年,我在阿里 B2B 平台技术部做应用监控,为了采集 JDBC 监控的监控信息,开发了 Druid 连接池,为监控而生,内置的 StatFilter 采集了非常完备的监控信息,9 年过去了,仍然没有其他产品采集的 JDBC 监控信息能够和 Druid 相比。StatFilter 提供完备的监控信息采集的同时,对性能影响极小,可以用于生产环境中,在阿里有数万 Java 应用 Druid 连接池打开了 StatFilter。
Druid 最近对 SQL Parser 增强了对 MySQL、DB2、PG、SQL Server、Hive 支持,每次发布都会有 Parser 相关的内容,2017~2018 年 Parser 有很大增强,我计划后续会多花时间维护 Druid SQL Parser。

Druid 计划什么时候兼容 jdk9 以上的版本,目前进度如何?

可以在 JDK 6 以上的版本使用 Druid,也包括 JDK 9 和最近的 JDK 13。原来有一些新的 API 没有实现,最近会发布一个版本补上。

阿里巴巴的第 11 个双十一就要来了,Druid 作为阿里唯一使用的数据库连接池,往年双十一的经历对项目产生了怎样的影响?

Druid 经历过很多年双十一了,现在已经可以很稳定地应对,不需要做什么特殊准备。在以前,对数百个的大分库做过“合并创建销毁线程池”的优化,最近1.1.20对主备切换场景做了一些优化,是阿里云客户反馈过来做的优化。

您曾在开源中国的访谈中谈到 Druid 的发展方向是成为国内使用最广泛的 Java 数据库连接池,并着重社区建设。7年过去了,目前的发展符合您当时的规划吗?现在您对 Druid 的发展又有什么新的想法吗?

Druid 已经是国内使用最广泛的连接池,在国内用户非常广泛,但用户社区和开发者社区都没有建设起来,精力不够是主要原因。同时维护 fastjson 和 Druid,通常是 fastjson多花时间的时候,Druid 就会少花时间。预计后续会多花时间在 Druid SQL Parser上。提供监控信息集中分析展示是一直想做但没做的事情,但目前还没有计划。

fastjson 目前支持 java 和 Android,未来有兼容更多语言的计划吗?近期有大版本更新的计划或想法吗?

我只擅长 Java 语言,其他语言不太会,没有兼容更多语言的计划。近期没有大版本更新的计划,等 JEP 338 Vector API 正式加入到 JDK 后,计划针对性做一些优化。

fastjson 在阿里巴巴大规模使用,在数万台服务器上部署,在业界也被广泛接受。相比其他同类型的类库,您认为 fastjson 的优势和特性是什么?未来的发展方向是什么?

fastjson 有如下优势:
(1) 高性能,在之前的测试中,json/databind 分类中, fastjson 仍然排名第一。
(2) 在简单易用,只有一个 jar,零依赖
(3) 功能丰富,支持各种日期格式的自动识别,支持 JSONPath,支持 Kotlin,支持 BeanToArray 模式影射。
(4) 有针对 Android 优化的版本,有 Android 需要的首次序列化/反序列化性能提升、小方法内联等,性能远超其他类库。
未来发展方向是:提供更完善的 JSONPath 支持,大数据 SerDe 支持。

输入图片说明

- 关于开源 -

在开源中国举办的年度最受欢迎的中国开源软件 TOP10 评选中,Druid 和 fastjson 连续三年榜上有名,两个开源项目是如何持续进行维护和推广的呢?可以分享一些经验吗?

我一直觉得 fastjson 和 Druid 在维护和推广方面应该能做得更好的,这两个项目都是业余维护的,精力不够,所以很多事情做得不够好。代码写好,对用户有用,愿意和用户沟通,就会被接受然后慢慢开始流行。

您在 2010 年加入阿里巴巴,在您看来这九年阿里在开源方面经历了什么样的转变?您身处其中又有哪些成长、变化呢?

阿里最初的开源是阿里巴巴理想主义在技术领域的体现,最初阿里开源运动发起的原因是“受益开源,回馈开源”,是子公司的部门行为。现在开源已经成为阿里的集团战略,一些关键的开源项目是有组织保障资源投入的,比如 Druid、RocketMQ 等,阿里巴巴也是坚持自主开源最早、贡献最大的公司之一。我非常高兴见证了整个阿里开源的过程,这个过程中,我收获了很多朋友的信任和支持,我会一直做下去!

开源在全球已经历了 20 余年的发展,今年国内对开源的关注和讨论更是空前的,您如何看待国内开源目前所处的阶段?

国内开源项目有很大进步,但国内原创大型开源项目还是不多,类似 Dubbo 这样影响行业技术架构的项目太少了,远远不能匹配国内互联网公司在行业中的位置。我们在主流开源技术栈上要争取更多的自主开源,暂时无法自主的要积极参与。

输入图片说明

- 工作之外 -

工作之余的兴趣爱好是什么?您是如何在工作与生活之间分配精力,寻找平衡的?

在阿里工作很忙,以前的一些爱好都不爱了,很感谢家人对我工作的支持,让我有更多的时间投入在工作和开源上。

平时通过怎样的方式来持续学习?对程序员的学习成长有什么建议吗?

爱好是最好的老师。强烈建议通过官方社区、官方文档学习,被三方解读过后的技术介绍容易失真的,比如学 Java 就要看相关 JSR 和 JEP,阅读 JDK/JVM 的源码。

Linus 是您在技术界的偶像,那么 Linus 有哪些特质吸引您?对您产生了什么影响?

2017 年 Linus 接受采访是提到了一个"Good Taste Code Example",给我很大的震撼,这个就是自己想要做到但没做到的目标。Linus 有很好的作品:Linux 和 Git,他的作品,他的贡献,他的代码品味都是向往的。

有什么想对码云 Gitee 说的吗?

Gitee 要让更多的国内开源项目托管在 Gitee 上!


封面人物小档案

  • 人物:温绍锦
  • 技能:Java、JSON Parser、SQL Parser、数据库连接池
  • 码龄:20年
  • 技术界的偶像:Linus
  • 最爱的开源项目:Open JDK、Presto
  • 最爱的电子产品:Mac Book Pro
  • 爱好:写代码


————————————————————

文章内容为受采访者独立观点,不代表官方立场。
本文版权属码云(Gitee.com)所有,转载或内容合作请联系 liuchen@oschina.cn , 未经授权不得转载、摘编或利用其它方式使用本文内容。违反上述声明者,将追究其相关法律责任。