阿里开源 Dragonwell JDK 重磅发布 GA 版本:生产环境可用

如题所述

第1个回答  2024-08-17
今年3月,阿里巴巴开源了长期支持版本Dragonwell的OpenJDK,这个消息迅速吸引了开发者的关注,GitHub上获得了1400多个星标。最近,Dragonwell JDK 8.0.0正式发布GA版本,意味着其已具备在生产环境运行的能力。

2019年3月,Dragonwell JDK正式开源,发布预览版本。近日,阿里巴巴宣布Dragonwell JDK 8.0.0-GA发布,意味着其已完全具备在生产环境运行的能力。社区成员在过去三个月中提供了大量反馈。那么,GA版本加入了哪些新特性?对开发者意味着什么?

Dragonwell 8.0.0-GA的工作目的是让Dragonwell快速在产品环境中使用。在该版本中,我们同步了OpenJDK上游社区jdk8u212-b04的最新更新,这意味着我们同步了上游的最新安全更新和补丁。

除了同步更新,Dragonwell8还修复了在阿里巴巴Java场景下发现的一些重要bug,并通过内部场景进行了检验。同时,我们提供了一个默认的安全证书,我们会随时更新和维护。熟悉Dragonwell的用户可能知道,Dragonwell相比OpenJDK上游提供了专有的特性,例如JFR,JWarmUp等。这些特性在阿里巴巴内部得到了广泛应用,并为Java业务的稳定运行做出了巨大贡献。在8.0.0-GA版本中,我们对JFR特性进行了修复和兼容性改进,社区用户可以放心使用。

8.0.0-GA的详细内容可以在GitHub的release notes中查看,具体信息请参阅。

Dragonwell的未来变化

在介绍完8.0.0-GA的新变化后,许多用户已经开始尝试使用。在使用之前,我们再聊几句,作为Dragonwell的家庭成员,如何成长是我们关心的话题。但Dragonwell是社区的孩子,我们也非常希望社区用户帮助其变化成长。因此,我们讨论了未来可能发生的变化。

Dragonwell自从诞生以来,就吸引了社区的广泛关注,尤其是新特性的使用。在今年的ISCA2019 Runtimes in the Cloud Tutorial中,我们向社区和学术界汇报了Dragonwell在新特性的进展,并得到了积极的反馈。社区的反馈是我们下一步工作的动力,希望用户多提意见。更多关于这个演讲的信息和PPT下载,请参阅指定链接。

Dragonwell目前存在的几个特性都经过阿里巴巴庞大Java场景的检验,在稳定性上非常可靠。接下来,我们就具体讨论这些特性的功能。

JWarmUp

为了解决阿里巴巴双11抢购场景中Java系统Warmup的痛点,JWarmUp技术从JVM层面进行了解决。在普通的Java应用中,JVM需要找到热点方法并进行JIT编译以加速。在高并发场景下,应用启动后需要很长时间来找到热点并进行编译,这段时间内,性能指标(CPU使用率、TPS吞吐量、RT响应时间)不理想。换句话说,应用启动并提供服务后,处于Warmup状态,虽然可以对外提供服务,但服务质量较差,如果并发较高,可能导致服务质量降级甚至服务崩溃。

为优化此过程,工业实践通常在Java启动后引入预热步骤,通过导入数据使应用提前加热。然而,这种方法在许多场景下存在局限性,因为获取高质量的预热数据很困难。预热数据的准确性直接影响预热效果,高质量数据可以提高编译质量,不一致的数据可能导致反面效果。因此,如何准备预热数据是一个复杂的问题,实际运维中还没有很好的解决方法。

Dragonwell的JWarmUp技术使用之前运行的信息找到热点方法和Java类信息,后续JVM运行实例可以利用这些信息进行预热,无需通过人为数据进行预热。收集热点信息的方式有多种选择,例如在应用集群中选择一个节点,或在发布过程中选择一个beta阶段来收集。相比人为数据方式,JWarmUp有以下几个优势:在specjvm2008基准测试中,对于某些测试用例,跑分有明显提高,例如将xml.validation的跑分从268.07 ops/m提高到294.95 ops/m,提高了约10%。

这个特性在阿里巴巴双11抢购场景中得到了验证,成为Dragonwell的秘密武器。我们正在社区努力推动,通过JEP的方式将此功能引入OpenJDK社区。好用的东西应该共享,整个社区都能受益。目前,JEP草案正在社区审查中,感兴趣的用户可以在OpenJDK社区邮件列表中为Dragonwell发声。

JFR

Java Flight Recorder(JFR)是Dragonwell的一个功能特性,当开启后,JVM可以以很小的性能开销记录Java运行过程中的各种运行时数据。产生的JFR数据包含JVM运行时的各种微观细节,通过Java Mission Control(JMC)进行分析。JMC是一个桌面应用程序,解析JFR数据后,JMC可以快速定位产品环境中的各种故障。它分析内存分配热点、方法调用热点、方法调用超时分析、内存泄漏、IO活动、线程活动等,帮助Java用户确保服务的稳定性。

阿里巴巴日常开发中遇到的许多问题都是通过JFR得到解决的,可以说是Java故障诊断的利器。JFR功能在OpenJDK11及以上版本才有。在阿里巴巴的推动下,JFR功能开始被OpenJDK社区接受,计划进入OpenJDK8主线。社区的移植工作正在incubator分支紧张进行,不久将来,整个OpenJDK8下游生态都可以享受这个工作成果。

Dragonwell作为JFR在OpenJDK8社区工作的参与者,会不断引入JFR的最新工作成果。除了JFR社区的功能,Dragonwell在JFR上也做了许多增强和创新,一方面积极反馈上游OpenJDK社区,另一方面,在推动上游的同时,Dragonwell用户会享受到一些特别的福利:在上游社区接受特性之前,Dragonwell会首先开源这些新功能。

ElasticHeap

最后,介绍我们的神秘嘉宾ElasticHeap。Dragonwell会不断将阿里巴巴内部的创新特性反馈到社区。ElasticHeap是继JFR、JWarmUp之后,计划在下一个版本发布的第三个新特性。它基于G1 GC,提供了动态堆的弹性伸缩功能,有效节省Java进程的实际物理内存占用。OpenJDK8仅支持在Full GC时按照一定规则归还物理内存,而Dragonwell的ElasticHeap提供了更敏捷有效的内存归还方式。

总结

8.0.0-GA的发布标志着Dragonwell进入新的征程,更多新特性将被开源。我们希望社区用户能多加支持,与中国的Java开发者一起,为增强国内Java生态系统力量而努力,让中国开发者的声音被全世界听见。

阿里开源 Dragonwell JDK 重磅发布 GA 版本:生产环境可用
今年3月,阿里巴巴开源了长期支持版本Dragonwell的OpenJDK,这个消息迅速吸引了开发者的关注,GitHub上获得了1400多个星标。最近,Dragonwell JDK 8.0.0正式发布GA版本,意味着其已具备在生产环境运行的能力。2019年3月,Dragonwell JDK正式开源,发布预览版本。近日,阿里巴巴宣布Dragonwell JDK 8.0.0-GA发布...

重磅发布:阿里开源 OpenJDK 长期支持版本 Alibaba Dragonwell
Alibaba Dragonwell 预览版本对应 OpenJDK 8 的版本。作为 AJDK(Alibaba\/AlipayJDK)的开源版本,Alibaba Dragonwell 沿袭了 AJDK 的技术优势以及实践场景下的技术经验。开源后,每次发布都将同步 OpenJDK 8 的最新更新,并基于阿里的工程实践,加入阿里的 'value-add' 功能,确保 Java 的兼容性。随着 Or...

腾讯牛逼!终于开源了自家的 JDK——Kona
是的,继阿里 2019\/03 开源基于 OpenJDK 的长期支持版本 Alibaba Dragonwell 之后,腾讯也发布了自家的开源免费的 JDK 版本—— Tencent Kona ,必须替小马哥宣传一波。看了下 Github 腾讯开源版 JDK 的发布记录:最早是在 2019\/11\/04 这天发布的 Tencent Kona v8.0.0 版...

银河麒麟V10 arm架构docker制作Dragonwell jdk镜像
一、环境准备首先,创建目录用于存放文件。将下载的Alibaba_Dragonwell_Standard_8.12.13_aarch64_linux.tar.gz包上传至\/home\/jdk目录。在该目录下编写dockerfile文件。二、编写dockerfile文件在dockerfile文件中,将下载的Dragonwell JDK包解压到指定目录,设置运行时环境,安装必要的依赖包,设置环境变量,...

相似回答
大家正在搜