来源:Gitee 封面人物 丨 2019-11-11
本期嘉宾
温绍锦 :阿里巴巴第一代开源人,花名高铁,阿里巴巴著名开源项目 fastjson 和 Druid 创始人,目前担任阿里云产品 Data Lake Analytics 技术负责人。
Druid :Java 语言中最好的数据库连接池,Druid 能够提供强大的监控和扩展功能。
fastjson :阿里巴巴的开源 JSON 解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。
我叫温绍锦,2010 年加入阿里,花名是高铁,有多重含义,其中一个含义就是代码运行的速度快。现在是阿里云产品 Data Lake Analytics 的技术 Leader。
2010年在阿里巴巴 B2B平台技术部做应用监控系统 Dragoon 时,需要一个高性能的 JSON 解析器和带监控功能的连接池,于是 fastjson 和 Druid 就诞生了。
在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。
可以在 JDK 6 以上的版本使用 Druid,也包括 JDK 9 和最近的 JDK 13。原来有一些新的 API 没有实现,最近会发布一个版本补上。
Druid 经历过很多年双十一了,现在已经可以很稳定地应对,不需要做什么特殊准备。在以前,对数百个的大分库做过“合并创建销毁线程池”的优化,最近1.1.20对主备切换场景做了一些优化,是阿里云客户反馈过来做的优化。
Druid 已经是国内使用最广泛的连接池,在国内用户非常广泛,但用户社区和开发者社区都没有建设起来,精力不够是主要原因。同时维护 fastjson 和 Druid,通常是 fastjson多花时间的时候,Druid 就会少花时间。预计后续会多花时间在 Druid SQL Parser上。提供监控信息集中分析展示是一直想做但没做的事情,但目前还没有计划。
我只擅长 Java 语言,其他语言不太会,没有兼容更多语言的计划。近期没有大版本更新的计划,等 JEP 338 Vector API 正式加入到 JDK 后,计划针对性做一些优化。
fastjson 有如下优势:
(1) 高性能,在之前的测试中,json/databind 分类中, fastjson 仍然排名第一。
(2) 在简单易用,只有一个 jar,零依赖
(3) 功能丰富,支持各种日期格式的自动识别,支持 JSONPath,支持 Kotlin,支持 BeanToArray 模式影射。
(4) 有针对 Android 优化的版本,有 Android 需要的首次序列化/反序列化性能提升、小方法内联等,性能远超其他类库。
未来发展方向是:提供更完善的 JSONPath 支持,大数据 SerDe 支持。
我一直觉得 fastjson 和 Druid 在维护和推广方面应该能做得更好的,这两个项目都是业余维护的,精力不够,所以很多事情做得不够好。代码写好,对用户有用,愿意和用户沟通,就会被接受然后慢慢开始流行。
阿里最初的开源是阿里巴巴理想主义在技术领域的体现,最初阿里开源运动发起的原因是“受益开源,回馈开源”,是子公司的部门行为。现在开源已经成为阿里的集团战略,一些关键的开源项目是有组织保障资源投入的,比如 Druid、RocketMQ 等,阿里巴巴也是坚持自主开源最早、贡献最大的公司之一。我非常高兴见证了整个阿里开源的过程,这个过程中,我收获了很多朋友的信任和支持,我会一直做下去!
国内开源项目有很大进步,但国内原创大型开源项目还是不多,类似 Dubbo 这样影响行业技术架构的项目太少了,远远不能匹配国内互联网公司在行业中的位置。我们在主流开源技术栈上要争取更多的自主开源,暂时无法自主的要积极参与。
在阿里工作很忙,以前的一些爱好都不爱了,很感谢家人对我工作的支持,让我有更多的时间投入在工作和开源上。
爱好是最好的老师。强烈建议通过官方社区、官方文档学习,被三方解读过后的技术介绍容易失真的,比如学 Java 就要看相关 JSR 和 JEP,阅读 JDK/JVM 的源码。
2017 年 Linus 接受采访是提到了一个"Good Taste Code Example",给我很大的震撼,这个就是自己想要做到但没做到的目标。Linus 有很好的作品:Linux 和 Git,他的作品,他的贡献,他的代码品味都是向往的。
Gitee 要让更多的国内开源项目托管在 Gitee 上!
封面人物小档案