OpenJDK - 准备好投入生产了吗?[已关闭]

2022-09-04 01:10:34

想知道是否有人从Sun/Oracle JDK切换到OpenJDK?

准备好生产了吗?版本 7 版本与 Oracle 版本有什么不同吗?


答案 1

OpenJDK 是否可用于生产的问题的答案可能取决于您的应用程序工作负载。在Azul Systems,我们围绕OpenJDK推出了Zulu产品,旨在通过OpenJDK支持生产工作负载。

为此,我们准备了自己的OpenJDK二进制发行版,根据Windows和Linux平台上的相关Java SE标准(即6,7和8)的技术兼容性工具包(“TCK”)对其进行测试,然后在各种应用程序场景中执行它们:Java EE应用程序服务器,GUI应用程序,基准测试,虚拟化和云上下文,调试器等。

到目前为止,OpenJDK可以承受许多类型的工作负载。OpenJDK和Hotspot之间仍然存在一些差异,这些差异可能与您自己的工作负载和应用程序设计有关,例如浏览器JRE插件和Java Web Start在Hotspot中,但不在OpenJDK中。OpenJDK中的核心JVM仍然非常相似:相同的解释器,相同的C1和C2编译器,相同的垃圾回收器,相同的源编译器和类API层次结构以及类似的基本工具。许多剩余的差距源于产权负担,这意味着Oracle JDK中存在的项目无法从其原始包含和许可证影响中打开。

为了回应“Java 7准备好了吗”,鉴于OpenJDK 6的源代码通过IcedTea开源项目演变,这些差异确实可能在OpenJDK 6中最为明显。OpenJDK 7 和 OpenJDK 8 在 GA 开始时非常相似,然后在整个维护周期中逐渐变得不同,其中安全修复程序定期流入 OpenJDK,并在 Oracle 进行季度关键补丁更新时进行大批量修复。此外,有价值的源更改和修复从 8 和 9 存储库到 6 和 7 的向后移植在整个生命周期中持续发生。好的代码就是好的代码。

在考虑生产操作时,您可能还需要考虑对 JVM 和 JDK 的技术支持。虽然祖鲁语本身是免费的,但如果您的生产环境需要支持,Azul通过祖鲁企业产品的不同层级提供收费的技术支持。

祖鲁和祖鲁企业在Azul网站上进行了描述:http://www.azulsystems.com/products/zulu

免责声明:我是Azul Systems的Zulu和Zing产品的产品经理。


答案 2

OpenJDK 中仍然存在一些可能影响您的操作的回归。例如,请参阅:尝试将Apache Tomcat端口从8080更改为80时出现内存错误

OpenJDK不能被认为是Sun Java的安全替代品,请仔细测试您的应用程序。

编辑:为了清楚起见,提到的问题是由OpenJDK与Sun Java相比内存使用量略有增加引起的(不多,但在这种情况下足以产生内存问题)。


推荐