当前位置: 首页 > 后端技术 > Java

你想要一杯Corretto吗?谈谈JDK的新选择

时间:2023-04-01 20:14:53 Java

前言如果以20年为限,让我们选择一门影响力最大的编程语言,我的答案应该只有一个——那就是Java。这门诞生于1995年的全新计算机语言,以其“一次编写,随处运行”的跨平台特性和面向对象、泛型等现代语言特性,迅速成为企业级乃至移动应用开发的首选。编程。随着Java的流行,用于开发和提供JVM支持的JavaDevelopmentKit(JDK)成为最重要的开发工具包。历史上出现过很多JDK发行版,比如IceTea、Blackdown、JRockit、ApacheHarmony等,都已经成为历史。Java是世界上使用最广泛的语言技术栈。据统计,全球有超过1000万的Java开发工程师。JDK作为Java语言的软件开发包,是整个Java应用程序的核心。目前,在JDK全球市场份额中,OracleJDK占比70%,OpenJDK占比约21%。但2019年1月之后,Oracle不再免费提供OracleJDK8商业版更新。亚马逊云技术开发者社区为开发者提供全球开发技术资源。有技术文档、开发案例、技术专栏、培训视频、活动竞赛等,帮助中国开发者对接全球最前沿的技术、思想、项目,向全球云社区推荐优秀的中国开发者或技术.如果你还没有关注/收藏,请看到这里不要急着过来,点这里让它成为你的技术宝库!AmazonCorretto是OpenJavaDevelopmentKit(OpenJDK)的免费、多平台、生产就绪型发行版。Corretto提供长期支持,包括性能增强和安全修复。Amazon在内部的数千个生产服务上运行Corretto,并且Corretto已被证明与JavaSE兼容。借助Corretto,您可以在流行的操作系统(包括Linux、Windows和macOS)上开发和运行Java应用程序。今天,当我们面对OpenJDK、Azul、OracleJavaSE等众多JDK选项时,我们应该如何选择呢?什么是亚马逊Corretto?咖啡爱好者知道Correto是一种混合了类似白兰地的烈酒的意大利浓缩咖啡。啜一口,您会陶醉于红酒与咖啡共饮所带来的刺激口感和浓郁氛围。AmazonCorretto是一个OpenJDK,让你只用一次就陶醉其中。以下内容将向您展示它的特点:AmazonCorretto支持多种平台,使您可以在云计算环境、私有数据中心和本地机器中使用它。或者在容器中运行。OpenJDK对应的Corretto现在可用于:Linuxx64https://docs.aws.amazon.com/zh_cn/corretto/latest/corretto-8-...Linuxaarch64https://docs.aws.amazon.com/en_cn/corretto/latest/corretto-8-...Windowsx64https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/win...Windowsx86https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/win...macosx64https://docs.aws.amazon.com/corretto/corretto/latest/corretto-8-ug/mac...amazonlinux2x64https.aws.amazon.com/corretto/latest/corretto-8-ug/ama...AmazonLinux2aarch64https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/ama。..以及其他平台或操作系统和云计算环境。目前发布的版本是OpenJDK8对应的Corretto8和OpenJDK11对应的Corretto11。为确保与JavaSE平台的兼容性,对于每个Corretto版本都运行技术兼容性工具包(TCK),以确保Corretto可以用作所有JavaSE发行版的完全替代品,除非您使用的是OpenJDK中不可用的发行版功能(例如,Java飞行记录器)。现有的Java命令行选项、调整参数、监控以及Corretto安装以运行Java应用程序的所有其他内容将继续工作。作为一家成功的技术驱动型企业,亚马逊在其25年的历史中构建了庞大的IT系统。成千上万的生产服务都是基于Java语言开发的,而运行这些应用程序的基础就是JDK。这个过程让亚马逊积累了丰富的JDK应用经验。知识问答网站Quora上有这样一个问题。统计了一下答案,提到最多的开发语言大概就是Java了。在这里我想引用詹姆斯高斯林的评论。众所周知,JamesGosling是Java语言的创始人,也是我非常尊敬的前辈。他目前在AmazonCloudTechnology担任杰出工程师。因为他的工作,我有幸与他共进晚餐,听他聊起当年的八卦。这大概就是一种好处吧。“亚马逊在Java方面有着悠久而深厚的历史。我很高兴看到我们内部任务关键型Java团队的工作被提供给世界其他地方”——JamesGoslinghljs-right亚马逊有着悠久而深厚的历史与Java。我很高兴看到我们内部关键任务Java团队的工作成果可供世界其他地区使用。为什么需要AmazonCorretto?回答这个问题需要回顾过去几年围绕Java发生的事情。一连串的动荡。熟悉Java的开发者应该知道JavaSE。我们熟悉的JavaSE定义了一系列通用的JavaAPI,包括Java语言规范和Java虚拟机(JVM)规范。JavaSE最著名的实现之一是:OracleCorporation的JavaDevelopmentKit(JDK)。过去,JavaSE规范一直由JCP(Java社区进程https://jcp.org/?trk=cndc-detail)管理。JCP决定哪些新规范可以添加,哪些需要删除。原则上,任何人都可以实现Java语言规范。如果实现通过了TCK(TestCompatibilityKit),一般认为是兼容的JDK。然而,围绕JDK的争吵和混乱开始是因为发生了两件事——Java开始每六个月发布一个新的主要版本,而Oracle改变了它对Java的支持模型。简而言之,Oracle现在分发两个JDK版本:OracleJDK和OracleOpenJDK。OracleJDK用于开发和测试是免费的,但是如果你在生产中使用它就必须付费。Oracle的OpenJDK在任何环境下都是免费的。雪上加霜的是,甲骨文宣布JavaSE8将于2019年1月结束JavaSE8的公开更新:https://blogs.oracle.com/java-platform-group/end-of-public-up。..据我了解,这种变化很大程度上与甲骨文的经营战略有关。然而,每一个Java用户、社区、企业等都对Java未来是否可以免费使用感到困惑。我相信大多数Java用户不会为此付费。此外,在JDK11日趋成熟的同时,JDK12也在如火如荼地进行。然而,现实世界中的大多数Java应用程序,尤其是强调稳定性和可靠性的企业应用程序,仍然构建在JDK8之上。许多公司仍然使用JDK8作为首选的Java环境。这张图是从2019年初开始的统计,让我们可以了解到目前市场上各个版本的现状,由此可见Java8在今天的重要性。资料来源:https://aspiresoftware.in/blog/wp-content/uploads/2019/01/108...虽然OpenJDK将在生产中保持免费和可用,但Oracle仅承诺支持和更新OracleJava11OpenJDK。所有后续支持和更新都归于开源社区。然而,众所周知,OpenJDK社区的响应速度和更新频率并不能很好地满足企业对关键业务支持的需求。关于这个观点,我想引用具有24年Java开发经验的Java资深人士MicahSilverman的话——“OpenJDK构建对我来说最大的痛苦是它们悲惨地落后于OracleJDK的TLS密码套件和TLS版本(1.1、1.2)).但是,我从事的开源项目的工作负载严重暴露于各种利用这些东西的加密算法和反向代理类型,因此它可能不会代表其他人可能遇到的问题类型在尝试OpenJDK时使用标准Web应用程序或微服务,尤其是OpenJDK11及更高版本更符合OracleJDK版本。”来源:https://developer.okta.com/blog/2019/01/16/which-java-sdk?trk...于是,在这样的情况下,AmazonCorretto应运而生。一方面,亚马逊自身需要海量的Java应用。在亚马逊系统的框架下,Corretto运行在数以千计的生产服务上。这就要求Corretto的补丁和改进能够解决亚马逊大规模的、真实世界的服务问题,以满足强大的性能和可扩展性需求。此外,您还可以通过这个开源项目回馈开源社区和广大的Java开发者。亚马逊通过免费的长期支持为用户提供这些功能,该支持每季度更新一次,包括错误修复和安全补丁。AmazonWebTechnologies甚至承诺在季度计划之外向客户提供紧急修复。需要强调的是,Correto的承诺是长期支持(Long-termsupport,LTS)。这种长期支持包括亚马逊承诺至少在相关发布版本的指定日期之前免费提供性能增强和安全更新(例如,Corretto8的承诺是2023年6月)。许多Java用户对Corretto表现出极大的兴趣,许多人已经开始了他们的迁移之旅。以FICO为例,这是一家位于加利福尼亚州圣何塞的数据分析公司,专门从事信用评分服务。它的FICO评分是衡量消费者信贷风险的指标,已成为美国消费者贷款的一个固定指标。他的工程副总裁JeetKaul是这样说的——“在FICO,我们已经在许多服务中使用了OpenJDK。借助AmazonCorretto,我们不仅可以为云部署Java,还可以跨所有部署和多个操作系统部署Java,因为我们知道亚马逊和社区支持OpenJDK。自预览版以来,我们一直在评估Corretto,并无缝替换了我们的Java运行时。”启动AmazonCorretto启动AmazonCorretto的最简单方法是选择Requirestheplatform并下载安装包。注意Java版本,Java8或Java11:AmazonCorretto官网https://aws.amazon.com/cn/corretto/?trk=cndc-detailAmazonCorretto8下载https://docs.aws.amazon.com/zh_cn/corretto/latest/corretto-8-...亚马逊Corretto11下载https://docs.aws.amazon.com/zh_cn/corretto/latest/corretto-11...亚马逊Corretto8源码https://docs.aws.amazon.com/zh_cn/corretto/latest/corretto-11...://github.com/corretto/corretto-8?trk=cndc-detailAmazonCorretto11源代码https://github.com/corretto/corretto-11?trk=cndc-detailjava-versionopenjdk版本“11.0.3”2019-04-16LTSOpenJDKRuntimeEnvironmentCorretto-11.0.3.7.1(build11.0.3+7-LTS)OpenJDK64-BitServerVMCorretto-11.0.3.7.1(build11.0.3+7-LTS,mixedmode)AmazonCorretto与OpenJDK的合作Amazon过去为OpenJDK8做出了很多贡献,未来将与OpenJDK社区更紧密地合作,以实现OpenJDK8和11的完善和增强。如果对JDK进行修复在上游项目中无法通过、延迟或不适合OpenJDK项目,亚马逊将作为增值服务提供给Corretto的用户。如果在OpenJDK中以其他方式解决了此类问题,亚马逊也会在安全的情况下尽快解决它。至于亚马逊云技术,Corretto已于2019年成为AmazonLinux上的默认JDK。结论最后,总结一下AmazonCorretto的特点——免费、开源、多平台和生产就绪的JDK(GPL-2.0)OpenJDK的下游分发免费长期支持(LTS)更新至少每季度发布一次(OpenJDK)多平台——Linux、Windows、macOS、DockerEnabledTechnologyCompatibilityKit(TCK)以确保与JavaSE平台的兼容性我们鼓励您使用Corretto来运行您的Java应用程序。祝您使用AmazonCorretto愉快!本文作者:FeiLianghongFeiLianghong,AmazonCloudTechnologyPrincipalDeveloperAdvocate。近20年来一直从事软件架构、程序开发和技术推广等领域。经常在各种技术会议上发表演讲和分享,同时也是各种技术社区的热心参与者。擅长Web应用、移动应用和机器学习的开发,也曾从事多个大型软件项目的设计、开发和项目管理。目前专注于云计算和互联网等技术领域,致力于帮助中国开发者构建基于云计算的新一代互联网应用。文章来源:https://dev.amazoncloud.cn/column/article/62b5200829f7d21bb15..