【开源访谈】Druid 作者温绍锦访谈实录

虫虫 发布于 2012/08/22 11:37
阅读 16K+
收藏 33

关于开源访谈

开源访谈是开源中国推出的一系列针对国内优秀开源软件作者的访谈,以文字的方式记录并传播。我们希望开源访谈能全面的展现国内开源软件、开源软件作者的现状,着实推动国内开源软件的应用与发展。

【作者简介】

温绍锦

温绍锦 (网名: 温少),阿里巴巴集团高级专家,DruidFastjson开源项目的主要开发者。

【软件简介】

Druid 是一个JDBC组件,它包括三部分:
DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
DruidDataSource 高效可管理的数据库连接池。
SQLParser

【访谈实录】

1.    能否先介绍一下你自己(技术背景、工作经历、学习经历)
我,温绍锦,新浪微博账号是温高铁(http://weibo.com/wengaotie),2001年深圳大学毕业后到金蝶软件工作,到2010年3月,在此期间,主要的工作成果包括工作流引擎、多数据支持、短信网关、SAAS多租户技术架构等。2010年3月加入阿里巴巴至今,主要负责设计阿里巴巴的监控系统Dragoon,监控应用和操作系统以及网络设备。Druid和Fastjson都是监控系统的伴生项目。

2.    是什么促使你(团队)开发 Druid ?为什么取这个名字?
在应用监控中,JDBC层间的监控十分重要,Druid就是为监控而生的。老板喜欢的一个游戏职业是Druid,于是项目的名称就是Druid。

3.   相对别的JDBC组件,Druid有什么优势和特点?有没有一些特殊或者创新的技术运用?
Druid最重要的优势,就是监控和扩展。在实际测试中,DruidDataSource的性能要比C3P0/DBCP/Jboss DataSource/Proxool/BoneCP都要好,但性能不是Druid的最重要优势。
Druid最初是为监控而生的JDBC组件,阿里巴巴的应用监控系统的JDBC相关监控数据都来自Druid。Druid能够监控执行时间、事务时间、返回行数、更新行数、最大并发、耗时区间分布等,共一百多个监控指标。Druid的监控非常出色,在业界中,没有任何JDBC组件在监控方面能和Druid相比。
Druid提供了基于Filter-Chain模式的扩展,使得在JDBC层做扩展非常容易。Druid内置提供了一些常用的Filter,StatFilter用于提供监控数据,Log系列Filter用于提供输出Connection、Statement、ResultSet相关的日志,WallFilter用于防御SQL注入攻击。在阿里巴巴,业务系统自行开发各种功能的Filter,比如:数据库密码加密的CirceFilter、数据库修改操作变更日志记录的TracerFilter、用于关联监控统计的DragoonFilter、用于错误编码转换的EncodingConvertFilter等等。
Druid还提供了一个功能完毕的SQL Parser,支持Oracle、MySQL、Postgresql、SQL Server等主流数据库的SQL。

4.    Druid 目前怎么推广,在实际产品中的应用情况如何?
Druid已经在阿里巴巴的B2B中全面使用,大约有600多个应用,最大的应用一个集群60多个Instance,总共数千个Instance。Druid在淘宝、支付宝刚开始使用。随着监控系统Dragoon在整个阿里集团推广,Druid将会在整个阿里集团部署。
Druid在阿里巴巴外部也有很多用户,经常收到反馈,但没有详细的统计数据。

5.    阿里以外的项目比较少采用 Druid 是否因为它比较适合大型系统?因为 Druid 强大的监控功能,一般小型系统都不需要。我估计易用性和文档是大部分项目选用连接池的首要指标。不知道你是否认同我的观点?
不是的,阿里巴巴600多个应用中,大中小各种类型的应用都有。稳定来自于透明,Druid的监控功能使得数据库访问层完全透明可监控。据我收到的反馈来看,阿里巴巴之外,至少有50个以上的项目采用了Druid。最近主动部署内置监控页面的,很多都是小应用,只有一台服务器的小应用。Druid的应用还没有DBCP、C3P0广,主要是它对外推广的时间还不够长,今年(2012年)下半年开始,才开始对外推广。

6.    目前参与开发/维护 Druid 的人员有哪些?是否都是全职做 Druid 的开发?
目前主要的开发人员有:刘加伟(项目发起人/阿里集团)、温绍锦(我/阿里集团)、王瑾华(axmanwang/阿里集团)、张永为(sandzhang/阿里巴巴)、修斯研(xiusiyan/支付宝)、齐占明(ZhangmingQi/中企永联)、周科荣(zhouhaibin/新浪彩票)、septer。
只有温绍锦(我)和王瑾华曾是公司工作安排相关,其他的都是业余参与。
在2011初,公司配备了专职的连接池测试人员:王克举、陈龙(实习生),2011年下半年连接池稳定之后就没有专职的测试了。

7.    Druid 将来的发展方向?
成为国内使用最广泛的Java数据库连接池。着重社区建设,增加非阿里系开发人员的比重。

8.    能否谈一下你对开源的理解,以及对国内开源技术和产品的看法?
参与开源是个人爱好,是对技术的追求。开源的项目,一定要是精品,要有突出的优势,把乱七八糟的产品开源了,没有意义。做开源产品,必须强调运营,和社区互动,尽量让社区更多参与其中。

9.    淘宝内部对于 Druid 这样的开源项目是如何管理和规划的?
这个项目发源于阿里巴巴B2B,目前归属于阿里集团,不是淘宝。项目首先是服务于公司的业务,阿里巴巴开源平台是做精品策略,开源必须要是好产品。公司支持和鼓励开源,但开源部分的工作和绩效无关。Druid的发展过程中,公司配备专职的测试,在测试环境和生产环境进行测试,实施阶段有专职人员负责实施,各个部门有相应的实施负责人。Druid快速发展成熟,很重要的原因是公司提供了大力支持。

10.   你有什么建议给程序员初学者吗?
如果项目中有用到数据库连接池,一定要选择Druid。多阅读JDK基础类库的源码,多阅读JSR(http://jcp.org)。

11.    能否给开源中国提一些意见和建议?
建议OSChina把原来使用的数据库连接池更换为Druid。

加载中
1
wenshao
wenshao

引用来自“鉴客”的答案

建议 @wenshao 对 Druid 进行瘦身,或者将不同功能模块分到不同的包中
Druid是服务器端使用的组件,包的大小无所谓,所以采用了Only One,All in One的策略,这样使用最方便!
0
鉴客
鉴客
最后一点亮了!
华宰
华宰
回复 @dd : 支持 @鉴客 的说法,连 api 文档都没有,还好意思让人换
鉴客
鉴客
回复 @dd : 为了换而换,这很不负责任!
ddatsh
ddatsh
呼叫 @红薯
ddatsh
ddatsh
+1
0
鉴客
鉴客
建议 @wenshao 对 Druid 进行瘦身,或者将不同功能模块分到不同的包中
0
吴下阿吉
吴下阿吉
最后一句话碉堡了
0
0xTang
0xTang
碉堡了!哈哈!!
0
0xTang
0xTang
@红薯 ,数据连接池换成druid吧!
0
wenshao
wenshao
druid 0.2.6-SNAPSHOT的内置监控的三个演示应用:1. sonar http://110.76.43.235:9000/druid/index.html 2. easyUI demo http://sshe.btboys.com/druid/index.html 3. springside4-mini-web http://110.76.43.235:8080/mini-web/
0
_null
_null
最后的建议确实亮了!
返回顶部
顶部