重磅發(fā)布:阿里 OpenJDK終于開源啦腿时! 將長期支持版本 Dragonwell

前幾天的北京阿里云峰會俭令,阿里巴巴正式宣布對外開源 OpenJDK 長期支持版本 Alibaba Dragonwell。作為 Java 全球管理組織 Java Community Process (JCP) 的最高執(zhí)行委員會的唯一中國代表坷檩,以及 Oracle 之外的 Java 生態(tài)中為數(shù)不多的 OpenJDK 定制者,Alibaba Dragonwell 的開源是阿里巴巴向全球 Java 開發(fā)者的重磅獻(xiàn)禮有送。

這就是 Alibaba Dragonwell

Alibaba Dragonwell 是一款免費(fèi)的 OpenJDK 發(fā)行版淌喻。它提供長期支持,包括性能增強(qiáng)和安全修復(fù)雀摘。Alibaba Dragonwell 目前支持 X86-64/Linux 平臺裸删,在數(shù)據(jù)中心大規(guī)模 Java 應(yīng)用部署情況下, 可以大幅度提高穩(wěn)定性阵赠、效率以及性能涯塔。Alibaba Dragonwell 與 Java SE 標(biāo)準(zhǔn)兼容肌稻,用戶可以使用 Alibaba Dragonwell 開發(fā)和運(yùn)行 Java 應(yīng)用程序。

image

此次匕荸,阿里巴巴發(fā)布的 Alibaba Dragonwell 8 預(yù)覽版本對應(yīng) OpenJDK 8 的版本爹谭。Alibaba Dragonwell的開源為全球 Java 開發(fā)者提供了新選擇。同時(shí)對于阿里云榛搔,Alibaba Dragonwell 會針對 LTS 的兩個(gè)版本 Java 8 和 Java 11 隨阿里云 VM 鏡像發(fā)布诺凡,免費(fèi)提供給阿里云客戶使用。

AJDK 的優(yōu)勢繼承者——Alibaba Dragonwell

Alibaba Dragonwell 的前身是阿里巴巴內(nèi)部使用的 AJDK(Alibaba/AlipayJDK)践惑。早在 2010 年腹泌,阿里巴巴就開始了基于 OpenJDK 開源軟件的開發(fā),并在 2015 年著手 OpenJDK 8 的優(yōu)化和定制工作尔觉。

AJDK 作為阿里巴巴 Java 應(yīng)用的基石凉袱,支撐了阿里經(jīng)濟(jì)體內(nèi)所有的 Java 業(yè)務(wù),經(jīng)受了多次雙十一考驗(yàn),積累了大量業(yè)務(wù)場景下的實(shí)踐經(jīng)驗(yàn)侦铜。作為在 Oracle 之外的 Java 生態(tài)中的 OpenJDK 定制者专甩, 阿里一直不遺余力持續(xù)開拓 Java 新疆界:

  • 2015 年 10月,AJDK8.0.0 發(fā)布钉稍,實(shí)現(xiàn)多租戶涤躲,支持高密度部署以及資源隔離。

  • 2016 年 5月嫁盲,AJDK 8.1.1 發(fā)布篓叶,支持 JWarmup,支持 Java 應(yīng)用在運(yùn)行時(shí)提前編譯。

  • 2016 年10月羞秤,AJDK 8.2.4 發(fā)布,實(shí)現(xiàn)Wisp協(xié)程 左敌,有效提升 Java 應(yīng)用性能 30% 以上瘾蛋。

  • 2018 年 1 月,AJDK 8.4.7 發(fā)布矫限,根據(jù)阿里大數(shù)據(jù)場景的定制版 ZenGC (G1 based)發(fā)布哺哼。

  • 2018 年 2月,發(fā)布基于 AJDK 的 Java Profiling 工具 Java Event Tracing(JET) 叼风。

作為 AJDK 的開源版本取董, Alibaba Dragonwell 沿襲了 AJDK 的技術(shù)優(yōu)勢以及實(shí)踐場景下的技術(shù)經(jīng)驗(yàn)。開源后无宿,Alibaba Dragonwell 的每次發(fā)布都將會同步 OpenJDK 8 的最新更新(OpenJDK 8u)茵汰,并將基于阿里的工程實(shí)踐,加入阿里的’value-add’ 功能孽鸡。Alibaba Dragonwell 版本會通過 JCK 兼容套件測試蹂午,確保 Java 的兼容性栏豺。

Alibaba Dragonwell 與 OpenJDK

Oracle 宣布 Java8 在 2019 年 1月之后停止更新,另外 Java11 及以后版本將不再提供免費(fèi)的 long-term support (LTS) 支持豆胸“峦荩可以預(yù)見,未來將有越來越多 Java 開發(fā)者轉(zhuǎn)向使用 OpenJDK晚胡。阿里巴巴長期致力于與 Java 技術(shù)推進(jìn)的聚集地——OpenJDK 社區(qū)密切合作灵奖,Alibaba Dragonwell 將保持與社區(qū)版本的同步,并充分融合阿里巴巴業(yè)務(wù)實(shí)踐與技術(shù)經(jīng)驗(yàn)估盘,為 Java 開發(fā)者提供一個(gè)良好的應(yīng)對方案瓷患。

Alibaba Dragonwell 8 的優(yōu)勢

1、移植上游 Java 11 的 Java Flight Recorder (JFR) 功能忿檩,Java 開發(fā)人員可以通過 JFR 收集 JVM 運(yùn)行過程中的詳細(xì)的 profiling 信息尉尾,配合 Java Mission Control(JMC), 大幅提高 Java 應(yīng)用的問題診斷及性能優(yōu)化效率;

2燥透、集成 AJDK 的 JWarmup 技術(shù)沙咏,JWarmup 已作為 Java Enhancment Proposal(JEP) 在 OpenJDK 立項(xiàng),未來有望加入 Java 的標(biāo)準(zhǔn)發(fā)行版中班套。JWarmup 在數(shù)據(jù)中心可以結(jié)合應(yīng)用的流量調(diào)度時(shí)機(jī)肢藐,動態(tài)預(yù)編譯Java 代碼,可以有效減少由于傳統(tǒng)的 Just-in-Time 的預(yù)熱(Warmup)導(dǎo)致的 CPU load 過高吱韭,rt 超時(shí)等問題吆豹。

3、提供在 GC 問題診斷 Servicibility 方面的提高理盆, 詳細(xì)信息參考 Alibaba Dragonwell 8 User Guide https://github.com/alibaba/dragonwell8/wiki/阿里巴巴Dragonwell8用戶指南

Alibaba Dragonwell Roadmap

作為 OpenJDK 的下游痘煤,Alibaba Dragonwell 將在每季度發(fā)布新版本主要包含:

  • 社區(qū)上游安全/關(guān)鍵 bug 修復(fù)

  • 阿里定制的功能,Bug修復(fù)等猿规。

  • 基于阿里工程實(shí)踐的 Java 8 以后版本的功能移植

我們計(jì)劃逐步把阿里巴巴內(nèi)部使用 AJDK 積累的技術(shù)創(chuàng)新開源出來貢獻(xiàn)給社區(qū)衷快。同時(shí),我們預(yù)計(jì) 2019 年年底發(fā)布 Alibaba Dragonewell 11姨俩。

Github Link:

https://github.com/alibaba/dragonwell8

image

二蘸拔、特性:

1、垃圾回收:使用CMS (-XX:+UseConcMarkSweep) 作為默認(rèn)GC策略环葵。

2调窍、JFR(Java Flight Recorder):

(1)從JDK11中backport到了Dragonwell-8版本中。

(2)添加了EnbleJFR命令行選項(xiàng)张遭,默認(rèn)關(guān)閉邓萨,用于徹底隔離JFR相關(guān)邏輯,只有添加-XX:+EnableJFR到JVM命令行才可以使用JFR特性。

3先誉、Serviceability支持:

(1)jmap的dump子命令支持“mini”選項(xiàng)湿刽,可以在做heapdump時(shí)忽略掉原始類型數(shù)組的內(nèi)容,詳情請參考jmap工具的幫助信息褐耳。

(2)增加參數(shù): PrintYoungGenHistoAfterParNewGC诈闺,該用于打印一次ParNew GC之后young區(qū)對象的histogram。該參數(shù)可以用jinfo動態(tài)打開铃芦。

(3)增加參數(shù)PrintGCRootsTraceTime用于打印一次ParNew GC的具體耗時(shí)雅镊,主要用于排查長的ygc問題。該參數(shù)可以用jinfo動態(tài)打開關(guān)閉刃滓。

(4)增加參數(shù):ArrayAllocationWarningSize仁烹,默認(rèn)值為512M。當(dāng)分配的對象大小超過該值的時(shí)候咧虎,標(biāo)準(zhǔn)輸出里會顯示分配的堆棧卓缰。該參數(shù)可以通過jinfo動態(tài)修改。

4砰诵、JWarmUp:

(1)增加參CompilationWarmUpRecording啟用JWarmUp的記錄模式征唬,在指定的時(shí)間后,JVM會生成JWarmUp profile茁彭,包含JVM中的已加載類及熱點(diǎn)方法总寒。

(2)增加參數(shù):CompilationWarmUp啟用JWarmUp的預(yù)熱編譯模式,根據(jù)指定的JWarmUp profile加載之前記錄的熱點(diǎn)方法理肺,通過API可以通知JVM預(yù)熱編譯熱點(diǎn)方法摄闸。

(3)JDK中提供了:com.alibaba.jwarmup.JWarmUp類,應(yīng)用可以使用該JAVA API控制JWarmUp妹萨,例如通知JVM開始WarmUp編譯年枕,檢查編譯情況,通知JVM退優(yōu)化預(yù)熱編譯的方法乎完。

三画切、安裝Alibaba Dragonwell:

1、下載軟件包:

下載地址:

https://github.com/alibaba/dragonwell8/releases

下載版本:

Alibaba_Dragonwell8_Linux_x64_8.0-preview.tar.gz

2囱怕、解壓軟件包:# tar -xf

Alibaba_Dragonwell8_Linux_x64_8.0-preview.tar.gz -C /usr/local

image

備注:解壓后生成的目錄名為j2sdk-image

3、配置環(huán)境變量:

# vim /etc/profile.d/jdk.shexport JAVA_HOME=/usr/local/j2sdk-imageexport PATH=$JAVA_HOME/bin:$PATH# . /etc/profile.d/jdk.sh

4毫别、查看JAVA版本:# java -version

image

Alibaba Dragonwell FAQ

在宣布開源前夕娃弓,InfoQ 記者對阿里云智能基礎(chǔ)產(chǎn)品事業(yè)部資深技術(shù)專家李三紅、阿里云智能基礎(chǔ)產(chǎn)品事業(yè)部研究員 Kingsum Chow (周經(jīng)森)進(jìn)行了采訪岛宦,以下就大家關(guān)心的問題做一下整理台丛。

Q1.Alibaba Dragonwell 命名有什么由來?

“Dragonwell”中文譯為龍井,象征著中國的茶文化挽霉,又恰好是杭州特色(阿里巴巴總部所在地)防嗡;“well”一詞通常被描述為水源匯聚在一起供大家享用,我們希望可以集合所有開發(fā)者的力量不斷完善該項(xiàng)目并最終貢獻(xiàn)給所有用戶侠坎。

Q2.開源的 Alibaba Dragonwell 與阿里內(nèi)部使用的 AJDK 是一個(gè)東西嗎蚁趁?

本次開源的 Alibaba Dragonwell 與阿里內(nèi)部使用的 AJDK 還是有差異的。Alibaba Dragonwell 是 AJDK 的開源版本实胸,AJDK 技術(shù)的繼承者他嫡。目前開源的版本并未包含 AJDK 的所有功能,比如多租戶庐完,Wisp 協(xié)程钢属,ZenGC 等。之后门躯,會考慮將 AJDK 的功能逐漸過渡到 Alibaba Dragonwell淆党。

Q3.Alibaba Dragonwell 與 OpenJDK 關(guān)系是怎么樣的?阿里巴巴是否會持續(xù)維護(hù) OpenJDK 社區(qū)讶凉?

Alibaba Dragonwell 一定是 OpenJDK 的下游染乌,每個(gè) Alibaba Dragonwell 發(fā)行版都會同步上游最新更新徙鱼,并經(jīng)過阿里巴巴內(nèi)部大規(guī)模的應(yīng)用集群測試信卡。同時(shí),阿里巴巴也會積極將 AJDK 上的技術(shù)積累貢獻(xiàn)到 OpenJDK阅仔,積極參與社區(qū)的項(xiàng)目更新和維護(hù)域醇。我們期待與 OpenJDK 社區(qū)密切合作台谊,共同推動 OpenJDK 的發(fā)展。

Q4. 如何看待Java 版本的升級譬挚? 如何看待 Oracle JDK 與 OpenJDK 的關(guān)系锅铅?

Java 8 是目前最被廣泛使用的版本,并且其群體非常堅(jiān)守减宣。在 Java 圈內(nèi)盐须,你會發(fā)現(xiàn)一個(gè)很有趣的現(xiàn)象:無論新版本給出的更新多么誘惑,大部分 Java 開發(fā)者似乎并不感興趣漆腌,依舊堅(jiān)持自己的選擇贼邓。確實(shí),Java 8 是一個(gè)非常成功的版本闷尿,以至于很多開發(fā)者并不認(rèn)為需要更新其他版本塑径,這可能與長期養(yǎng)成的習(xí)慣和固有信任有關(guān)系。Java 這么多年發(fā)展過來填具,大多數(shù)開發(fā)者已經(jīng)習(xí)慣信任官方 Oracle JDK统舀,對社區(qū) OpenJDK 版本關(guān)注不夠,所以從 Oracle JDK 到 OpenJDK 的切換需要一個(gè)過程。但隨著這些國際科技大廠的努力誉简,OpenJDK 的生態(tài)一定會越來越完善碉就,功能也會更加齊備,面對持續(xù)的安全更新和眾多大廠的深度參與闷串,這個(gè)項(xiàng)目應(yīng)該會成為 Java 生態(tài)中的重要公共資源瓮钥。

你對阿里的OpenJDK會有怎樣的看法,歡迎在下方討論和留言~

閱讀更多

程序員接私活經(jīng)驗(yàn)總結(jié)

2019 Android 高級面試題總結(jié)

Android Q:新系統(tǒng)名稱和新特性整理

程序員和產(chǎn)品經(jīng)理的那些“恩怨情仇”

如果對技術(shù)開發(fā)比較感興趣窿克,可以和我一塊交流技術(shù)骏庸,技術(shù)號id:codeGoogler

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市年叮,隨后出現(xiàn)的幾起案子具被,更是在濱河造成了極大的恐慌,老刑警劉巖只损,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件一姿,死亡現(xiàn)場離奇詭異,居然都是意外死亡跃惫,警方通過查閱死者的電腦和手機(jī)叮叹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爆存,“玉大人蛉顽,你說我怎么就攤上這事∠冉希” “怎么了携冤?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闲勺。 經(jīng)常有香客問我曾棕,道長,這世上最難降的妖魔是什么菜循? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任翘地,我火速辦了婚禮,結(jié)果婚禮上癌幕,老公的妹妹穿的比我還像新娘衙耕。我一直安慰自己,他們只是感情好勺远,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布臭杰。 她就那樣靜靜地躺著,像睡著了一般谚中。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天宪塔,我揣著相機(jī)與錄音磁奖,去河邊找鬼。 笑死某筐,一個(gè)胖子當(dāng)著我的面吹牛比搭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播南誊,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼身诺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抄囚?” 一聲冷哼從身側(cè)響起霉赡,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎幔托,沒想到半個(gè)月后穴亏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡重挑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年嗓化,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谬哀。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刺覆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出史煎,到底是詐尸還是另有隱情谦屑,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布劲室,位于F島的核電站伦仍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏很洋。R本人自食惡果不足惜充蓝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望喉磁。 院中可真熱鬧谓苟,春花似錦、人聲如沸协怒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽孕暇。三九已至仑撞,卻和暖如春赤兴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背隧哮。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工桶良, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沮翔。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓陨帆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親采蚀。 傳聞我的和親對象是個(gè)殘疾皇子疲牵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 緊緊依偎在一起 一個(gè)不離 一個(gè)不棄 你用心暖著我 我用念想著你 用打磨的 點(diǎn)點(diǎn)滴滴幸福時(shí)光 回報(bào)患難時(shí)的記憶
    楚漢留香閱讀 150評論 0 0
  • Redis 操作之String操作 String操作,redis中的String在在內(nèi)存中按照一個(gè)name對應(yīng)一個(gè)...
    knot98閱讀 209評論 0 0