阿里开源 OpenJDK 发行版 Dragonwell

日有消息显示,阿里将于 21 日重磅发布其 OpenJDK 发行版 Alibaba Dragonwell。

我们知道 OpenJDK 是基于 GPL v2/Classpath Exception 的 JDK 开源版本,有许多公司都在 OpenJDK 的基础上提供了自己的发行版,比如 Oracle、AdoptOpenJDK、Azul、IBM 与 Red Hat,一般这些供应商会将自行衍生的 OpenJDK 版本加入一些商业/非商业支持选项。

去年 AWS 也推出了自己的 OpenJDK 发行版 Corretto,背后甚至有 Java 之父 James Gosling “站台”,一时间引起不小反响。

常规理解,AWS 搞 Corretto 也算是一种“造轮子”,但是它提供的长期支持包括安全修复、常用功能增强、GC 调度、防止内存溢出,以及改进的监控、报表和线程管理等,这样的能力再加上 AWS 强大的客户和社区生态依赖,有理由让人相信 Corretto 这轮子是具有较大实际意义的。

阿里此次将发布的 Alibaba Dragonwell 也声称 LTS,并且阿里的客户与开发社区体量自然也无庸赘述,那么同为“造轮子”,Alibaba Dragonwell 这个 OpenJDK 发行版会带来些什么呢?

阿里云智能资深技术专家李三红向开源中国提前透露了 Alibaba Dragonwell 的一些信息。

第一印象是 Dragonwell 这个名字,龙井茶?是寓意像龙井一样的品质吗?分享一下背后的想法吧。

Java 本身就是一种咖啡的名字,AWS 开源的 Corretto 也是一种咖啡名。

在取名字的时候,我们也考虑了很多。中国的 Java 开发者将是 Alibaba Dragonwell 重要的用户群体,所以我们想从一些有中国特色的饮品名中寻找灵感,既能代表中国的文化,同时也希望这个名字中能有非常宏大的意愿,能够诠释她包容一切。最终想到了杭州的绿茶——龙井。

另一方面,龙井的英文名字 Dragonwell 也正好符合我们想要表达的意思。其中的“well”这个单词,就有着将很多水源汇聚在一起,一同享用的寓意,正好贴合开源协作分享的精神理念。这也是阿里开源 JDK 的初衷,希望将许多开发者的贡献汇聚在一起,让大家能够一起免费使用 Java,一起推动 Java 的进步。

为什么要去做这个东西?请介绍一下相关背景。

大家都知道 Java 一直是由 Oracle 主导的,从 2017 年开始,Oracle 开始陆陆续续转变了一些 Java 的策略。在 2018 年 CodeOne(原 JavaOne)大会上,来自 Java Platform Group 的首席架构师 Mark Reinhold 作了“The Future of Java is Today”的主题演讲,重点阐述了 Java 发布模式的变化。

他指出,从 Java 11(包含)以及以后的版本开始,Oracle 将不再提供免费的长期支持,如果你需要长期支持,可以通过向 Oracle 付费的方式获得。而 Java 8 的免费更新也将会在 2019 年一月份停止(目前已经停止)。

所以除非你是 Oracle 或者其它提供商业 JDK 厂商的付费客户,否则唯一的选择就是社区维护的 OpenJDK 版本,可以预见 Java 开发者从 Oracle JDK 切换到开源 OpenJDK 的现象会越来越多。

阿里可以说是全球最大的 Java 用户之一,而 JDK 又是 Java 的一个基础设施。我们其实早从 2010 年开始,就已经基于 OpenJDK 开源软件进行开发与定制。9 年来,支撑了阿里经济体内所有的 Java 业务,历经多年的“双11”考验,积累了大量业务场景下的实践经验。

阿里作为一家这么大体量的 Java 用户,我们有一份责任,就是把我们的 JDK 开放出去,给所有 Java 用户一个新的选择。同时,对于阿里自身来说,Alibaba Dragonwell 会针对 LTS 的两个版本 Java 8 和 Java 11 随阿里云 VM 镜像发布,免费提供给阿里云客户使用。

也就是说 Alibaba Dragonwell 会基于 OpenJDK 8 和 11?那么以后会更注重 Java 新特性的跟进还是保证提供支持呢?对它今后的发展有什么设想或者目标?

此次发布的 Alibaba Dragonwell 8 预览版本对应于上游的 OpenJDK 8 的版本。Alibaba Dragonwell 作为 OpenJDK 下游,是一款免费的 JDK 发行版,它将提供长期支持,包括关键修复和安全更新。

Alibaba Dragonwell 支持 x86-64/Linux 平台,它的特点,或者说所注重的是:在数据中心 Java 应用大规模部署的情况下,稳定性、效率以及性能的优化与提高。

Alibaba Dragonwell 的前身是阿里巴巴内部使用的 AJDK,或者换个角度来看,Alibaba Dragonwell 是 AJDK 优势的继承者。作为 AJDK 的开源版本,Alibaba Dragonwell 将沿袭 AJDK 的技术优势以及实践场景累积下来的技术经验。

AJDK 有众多的技术创新,包括多租户、Wisp 协程技术与 ZenGC 等,我们希望逐步把阿里巴巴内部积累的技术创新开源出来贡献给 OpenJDK 社区,并在 Alibaba Dragonwell 中沉淀下来。

什么时候 GA,目前有没有各个阶段具体的发布时间表?

目前发布的版本是 Alibaba Dragonwell 8 Preview 预览版,Alibaba Dragonwell 将每季度发布一个更新,目前计划是 Preview 的三个月后发布 GA。Alibaba Dragonwell 11 预计年底发布。

Alibaba Dragonwell 8 是一个 LTS 版本,它的生命周期具体是怎样的?最近大家对开源协议相关的问题都怕了(也就是开源协议其实可以根据厂商需要作变更),那目前/将来 Dragonwell 会不会加入一些支持限制条款呢?

不会。Alibaba Dragonwell 是 OpenJDK 下游,我们会严格遵循 OpenJDK 社区相关原则及协议。

前阵子 AWS 也推出了自己的 OpenJDK 发行版 Corretto;再往前,其实 Azul 与 Red Hat 等厂商也有提供 OpenJDK 版本。那么阿里的 Dragonwell 有什么优势、特点呢?

前面也提到了,Alibaba Dragonwell 注重的是在数据中心 Java 应用大规模部署的情况下,稳定性、效率以及性能的优化与提高。

具体来说:

  • 紧密与 OpenJDK 社区保持合作,保持对社区工作的跟踪,及时同步上游更新。
  • Alibaba Dragonwell 发行版与 Java SE 标准兼容。
  • AJDK 上孵化的创新技术,会逐步贡献 OpenJDK,并在 Alibaba Dragonwell 沉淀。比如这次发布的版本中包含了 JWarmUp 功能,它优化了 JVM 重启后的预热过程,具体技术细节可以参考用户手册。
  • 基于阿里工程实践,Alibaba Dragonwell 会选择移植高版本 Java 的重要功能,这些移植功能已经在阿里内部被大规模部署,用户都可以免费使用,而不用等下一个 LTS 版本。比如这次版本移植了上游 Java 11 的 Java Flight Recorder(JFR) 功能,Java 开发人员可以通过 JFR 收集 JVM 运行过程中的详细的 profiling 信息,配合 Java Mission Control(JMC),大幅提高 Java 应用的问题诊断及性能优化效率。这对于仍然停留在 Java 8 的用户来说,还是非常有意义的。

嘉宾介绍

李三红,阿里云智能资深技术专家。2014 年加入蚂蚁金服,现为阿里巴巴 Java 技术负责人,有超过 10 年的 Java 开发经验。加入阿里前,曾任 IBM Java 技术中心相关负责人,参与 IBM Java 虚拟机 J9 的开发。活跃于 Java 技术社区,在 Java 虚拟机领域拥有多项技术专利,是 GreenTea JUG(Java User Group)  组织者,JVM 顶级会议 JVMLS‘17 受邀演讲嘉宾,JavaOne、QCon、JPoint 等国际会议受邀嘉宾,VMIL‘18 会议程序委员会委员。

一、简介:

3月21日北京阿里云峰会,阿里巴巴正式宣布对外开源OpenJDK长期支持版本Alibaba Dragonwell。作为Java全球管理组织Java Community Process(JCP)的最高执行委员会的唯一中国代表,以及Oracle之外的Java生态中为数不多的OpenJDK定制者,Alibaba Dragonwell的开源是阿里巴巴向全球Java开发者的重磅献礼。

阿里巴巴有着最丰富的Java应用场景,覆盖电商、金融、物流等众多领域,是世界上最大的Java用户之一。作为OpenJDK的下游,Alibaba Dragonwell是阿里巴巴内部OpenJDK定制版AJDK的开源版本,AJDK为在线电商、金融、物流做了结合业务场景的优化,运行在超大规模的、100000+服务器的阿里巴巴数据中心。Alibaba Dragonwell与Java SE标准兼容,目前仅支持Linux/x86_64平台。Alibaba Dragonwell是OpenJDK的下游(friendly fork),使用了和OpenJDK一样的licensing。阿里会更紧密地和OpenJDK等开源社区协作,贡献更多的patches,促进Java技术的持续发展。

二、特性:

1、垃圾回收:使用CMS (-XX:+UseConcMarkSweep) 作为默认GC策略。

2、JFR(Java Flight Recorder):

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

(2)添加了EnbleJFR命令行选项,默认关闭,用于彻底隔离JFR相关逻辑,只有添加-XX:+EnableJFR到JVM命令行才可以使用JFR特性。

3、Serviceability支持:

(1)jmap的dump子命令支持“mini”选项,可以在做heapdump时忽略掉原始类型数组的内容,详情请参考jmap工具的帮助信息。

(2)增加参数PrintYoungGenHistoAfterParNewGC用于打印一次ParNew GC之后young区对象的histogram。该参数可以用jinfo动态打开。

(3)增加参数PrintGCRootsTraceTime用于打印一次ParNew GC的具体耗时,主要用于排查长的ygc问题。该参数可以用jinfo动态打开关闭。

(4)增加了参数ArrayAllocationWarningSize,默认值为512M。当分配的对象大小超过该值的时候,标准输出里会显示分配的堆栈。该参数可以通过jinfo动态修改。

4、JWarmUp:

(1)增加参数CompilationWarmUpRecording启用JWarmUp的记录模式,在指定的时间后,JVM会生成JWarmUp profile,包含JVM中的已加载类及热点方法。

(2)增加参数CompilationWarmUp启用JWarmUp的预热编译模式,根据指定的JWarmUp profile加载之前记录的热点方法,通过API可以通知JVM预热编译热点方法。

(3)JDK中提供com.alibaba.jwarmup.JWarmUp类,应用可以使用该JAVA API控制JWarmUp,例如通知JVM开始WarmUp编译,检查编译情况,通知JVM退优化预热编译的方法。

三、安装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

备注:解压后生成的目录名为j2sdk-image

3、配置环境变量:

# vim /etc/profile.d/jdk.sh

export JAVA_HOME=/usr/local/j2sdk-image

export PATH=$JAVA_HOME/bin:$PATH

# . /etc/profile.d/jdk.sh

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

原文地址:https://www.cnblogs.com/cfas/p/12037980.html

时间: 2024-11-09 01:52:29

阿里开源 OpenJDK 发行版 Dragonwell的相关文章

阿里开源自用 OpenJDK 版本,Java 社区迎来中国力量

3 月 21 日,阿里巴巴将宣布开源 Alibaba Dragonwell.届时,开发者可通过阿里云开发者中心及 Github 社区下载使用.InfoQ 记者独家专访了阿里云智能基础产品事业部资深技术专家李三红.阿里云智能基础产品事业部研究员 Kingsum Chow (周经森),听他们如何看待 Alibaba Dragonwell 与 Java 归途. 作者 | 赵钰莹受访嘉宾 | 阿里云智能基础产品事业部资深技术专家 李三红阿里云智能基础产品事业部研究员 Kingsum Chow (周经森)

开源社区慌不慌?又一个 Linux 发行版宣告死亡

开源社区慌不慌?又一个 Linux 发行版宣告死亡 现在越来越多的人都在使用基于Linux的操作系统,Win 10的用户反馈一直不好,所以这种现象就见怪不怪了.按理来说,在这种情况下,Linux应该能借机发展,然而并没有,例如,Linux Mint 开发团队正经历动荡.Scientific Linux 停止开发. 不幸的是,近日又传来了一个坏消息:另一个Linux发行版Antergos也已经宣布停止维护,这个操作系统基于 Arch Linux. Antergos官方表示:我们正式宣布Anterg

关于Linux开源发行版的选择

Linux发行版很多,分为以RedHat为代表的商业发行版和以Debian为代表的免费发行版.后者的典型版本有Ubuntu.CentOS.Debian CentOS.Ubuntu.Debian三个linux都是非常优秀的系统,,下面简单比较这三种系统. Ubuntu系统 Ubuntu有亮丽的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,并且Ubuntu对计算机硬件的支持好于centos和debian,兼容性强,Ubuntu应用非常多,但对于服务器系统来说,个人感觉并不需要太多的各

2016年最佳Linux发行版排行榜

2015年,不管在企业市场还是个人消费市场都是 Linux 非常重要的一年. 最好的回归发行版:openSUSE openSUSE 背后的 SUSE 公司是最老的 Linux 企业,它成立于 Linus Torvalds 宣布放出 Linux 的一年后.它其实早于 Red Hat 的诞生,它也是社区主导的发行版 openSUSE 的赞助商. 在2015,openSUSE 团队决定靠拢 SUSE Linux 企业版(SLE)以便用户可以共享企业服务版本的 DNA ,就像 CentOS 和 Ubun

Python科学计算发行版—Anaconda

Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy.scipy和matplotlib.要利用Python进行科学计算,就需要一一安装所需的模块,而这些模块可能又依赖于其它的软件包或库,因而安装和使用起来相对麻烦.幸好有人专门在做这一类事情,将科学计算所需要的模块都编译好,然后打包以发行版的形式供用户使用,Anaconda就是其中一个常用的科学计算发行版. 主页: https://store.continuum.io/cshop/anaconda/ Anacon

马哥Linux学习之Linux背景和主要发行版篇

Linux是一种 类Unix计算机操作系统的统称,简单的说来就是Linux内核+GNU工程的各种工具和数据库.Linux包括各种Linux的发行版,其实也就是为达到不同的目的而制作(目的包括对不同计算机结构的支持,对一个具体区域或语言的本地化,实时应用或嵌入式)的不同版本.   Linux的由来.在1991年4月,芬兰大学生linus因不满其教授对其教学用系统Minix(此教学系统又是Andrew Tannebaum教授为了不受AT&T许可协议的约束,为教学科研而开发的)不能作任何改动的态度,自

Linux系统各发行版镜像下载(持续更新)

Linux系统各发行版镜像下载(持续更新) http://www.linuxidc.com/Linux/2007-09/7399.htm Linux系统各发行版镜像下载(2014年10月更新),如果直接下载不了,请使用迅雷下载.并且注意,我的下载地址,在  迅雷 里才起作用. 包括Ubuntu,Fedora,SUSE,Red Hat Enterprise Linux,CentOS等. 中国大陆开源镜像站汇总 1.企业贡献: 搜狐开源镜像站:http://mirrors.sohu.com/网易开源

[Linux发行版] 常见Linux系统下载(转)

本专题页汇总最受欢迎的Linux发行版基本介绍和下载地址,如果您是一位刚接触Linux的新手,这里的介绍可能对您有所帮助,如果您是以为Linux使用前辈,也可以在评论处留下您宝贵意见和经验,以便让更多的人得到帮助! 首先介绍以下几款国产的Linux发行版: Magic Linux 系统:Linux 基于:Fedora 起源:中国 架构:i386 桌面:KDE 分类:桌面.生活 Magic Linux是一个新的Linux发行,简称 MGC,是针对中国人的版本,由中国Linux公社的社区会员和Lin

跨发行版应用打包格式 Flatpak 发布

关于Linux的学习,请查看书籍<Linux就该这么学> GNOME 项目组的 Allan Day 正式发布了 Flatpak,这并不是我们第一次提及 Flatpak,你可能已经知道它是一个无依赖关系的.跨发行版的软件打包框架,它可以让用户在多个基于 Linux 内核的操作系统上使用各种桌面应用程序.有些人可能记得 Flatpak 之前的名字叫做 XDG-App,Flatpak 是应 GNU/Linux 和开源软件开发者所需而出现的,可以让他们在多个桌面平台.操作系统上发行软件时,不用花费几个