11.11 溫紹錦:初心不改的阿里初代開源人

本期嘉賓:

溫紹錦

:阿里巴巴第一代開源人,花名高鐵,阿里巴巴著名開源項目 fastjson 和 Druid 創始人,目前擔任阿里雲產品 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 就誕生了。

溫紹錦:初心不改的阿里初代開源人 | 碼雲封面人物第18期

- 關於 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 支持。

溫紹錦:初心不改的阿里初代開源人 | 碼雲封面人物第18期

- 關於開源 -

在開源中國舉辦的年度最受歡迎的中國開源軟件 TOP10 評選中,Druid 和 fastjson 連續三年榜上有名,兩個開源項目是如何持續進行維護和推廣的呢?可以分享一些經驗嗎?

我一直覺得 fastjson 和 Druid 在維護和推廣方面應該能做得更好的,這兩個項目都是業餘維護的,精力不夠,所以很多事情做得不夠好。代碼寫好,對用戶有用,願意和用戶溝通,就會被接受然後慢慢開始流行。

您在 2010 年加入阿里巴巴,在您看來這九年阿里在開源方面經歷了什麼樣的轉變?您身處其中又有哪些成長、變化呢?

阿里最初的開源是阿里巴巴理想主義在技術領域的體現,最初阿里開源運動發起的原因是“受益開源,回饋開源”,是子公司的部門行為。現在開源已經成為阿里的集團戰略,一些關鍵的開源項目是有組織保障資源投入的,比如 Druid、RocketMQ 等,阿里巴巴也是堅持自主開源最早、貢獻最大的公司之一。我非常高興見證了整個阿里開源的過程,這個過程中,我收穫了很多朋友的信任和支持,我會一直做下去!

開源在全球已經歷了 20 餘年的發展,今年國內對開源的關注和討論更是空前的,您如何看待國內開源目前所處的階段?

國內開源項目有很大進步,但國內原創大型開源項目還是不多,類似 Dubbo 這樣影響行業技術架構的項目太少了,遠遠不能匹配國內互聯網公司在行業中的位置。我們在主流開源技術棧上要爭取更多的自主開源,暫時無法自主的要積極參與。

溫紹錦:初心不改的阿里初代開源人 | 碼雲封面人物第18期

- 工作之外 -

工作之餘的興趣愛好是什麼?您是如何在工作與生活之間分配精力,尋找平衡的?

在阿里工作很忙,以前的一些愛好都不愛了,很感謝家人對我工作的支持,讓我有更多的時間投入在工作和開源上。

平時通過怎樣的方式來持續學習?對程序員的學習成長有什麼建議嗎?

愛好是最好的老師。強烈建議通過官方社區、官方文檔學習,被三方解讀過後的技術介紹容易失真的,比如學 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年

最愛的開源項目:Open JDK、Presto

技術界的偶像:Linus

最愛的電子產品:Mac Book Pro

愛好:寫代碼


文章內容為受採訪者獨立觀點,不代表官方立場。

本文版權屬碼雲(Gitee.com)所有,轉載或內容合作請聯繫 [email protected] ,未經授權不得轉載、摘編或利用其它方式使用本文內容。違反上述聲明者,將追究其相關法律責任。


分享到:


相關文章: