Redlich 译者 | 张卫滨 策划 | 丁晓昀 本期的 Java 新闻包括 JDK 19、JDK 20、Spring 框架的更新、Spring Cloud 与 Spring Tools、Helidon Helidon 甲骨文引入了 Helidon Níma,这是一个基于虚拟线程的微服务框架,它提供了一个低开销、高并发的服务器,同时保持了阻塞式的线程模型。 在 Helidon 项目的协助下,这个新的框架随 Helidon 4.0.0 发布了第一个 alpha 版本,但是 Java 社区需要 2023 年底才能等到正式的 GA 版本。 关于 Helidon Níma 的更多细节,可以参阅 InfoQ 的新闻报道。
Helidon最初被命名为J4C(Java for Cloud),其设计以简单、快速为目标,它包括两个版本:Helidon SE和Helidon MP。 Helidon MP支持用于构建基于微服务的应用程序的MicroProfile 1.1规范。 Helidon的架构 下面的架构图显示了Helidon SE和Helidon MP的关系。 ? 下图说明了Helidon SE和Helidon MP所属的微服务框架类别。 ? 快速入门示例 Helidon提供了快速入门示例来演示Helidon SE和Helidon MP之间的区别。 先借用官方示例,稍后我们手写一个示例。 https://github.com/oracle/helidon 构建Docker镜像 Helidon SE示例 docker build -t quickstart-se target Helidon
5.8.0-M2、Spring Cloud Dataflow 2.9.5、Spring Shell 2.1.1、Payara Platform 5 Community、Micronaut 3.6.1、Helidon Helidon Helidon 3.0.1 已经发布,特性包括:根据配置恢复 Map 的注入行为、更新 WebSocketHandler 将查询参数从 WebServer 正确传播到 Tyrus、JSR 356 参考实现、WebSocket Java API 以及添加了 Helidon SE 和 Helidon MP 更新 HTTP 响应状范围计数器的示例。
作者 | A N M Bazlur Rahman 译者 | 张卫滨 策划 | 丁晓昀 在 Helidon 伞项目下,甲骨文推出了基于虚拟线程(JEP 425)的新微服务框架 Helidon Níma 开发人员可以通过 Helidon MP 或 Helidon SE 使用常规的 Helidon 框架达到一定的吞吐量,但是如果应用需要更高的性能,他们唯一能做的就是采用基于反应式的服务。 Helidon Níma 使用虚拟线程来解决这个问题,因为基于虚拟线程,阻塞的成本是很低的,所以我们可以创建数以百万计的虚拟线程。 Helidon Níma 是一个完全开源的框架,是 Helidon 代码库的一部分。 尽管 Helidon 项目是基于 Netty 的,但是甲骨文公司的软件开发人员 Dmitry Aleksandrov 在他的博客文章中提到: Helidon Níma 网络服务器计划在 Helidon
(在Helidon上了解更多信息) Helidon MP 是 Eclipse MicroProfile的实现之一,这使得使用许多 API 成为可能,包括 Java EE 开发人员已知的(例如 JAX-RS 在 Helidon SE 模型中,开发人员遵循“没有魔法”的原则,例如,创建应用程序所需的注解数量较少或完全没有。 Helidon SE 被选中用于微服务的开发。 格式的文件进行配置(在Helidon 配置文档中了解更多信息)。 request-to=ktor-service { "name": "helidon-service", "framework": { "name": "Helidon SE Helidon SE 和 Ktor 是 微框架,Spring Boot 和 Micronaut 是全栈框架,Quarkus 和 Helidon MP 是 MicroProfile 框架。
(在Helidon上了解更多信息) Helidon MP 是 Eclipse MicroProfile的实现之一,这使得使用许多 API 成为可能,包括 Java EE 开发人员已知的(例如 JAX-RS 在 Helidon SE 模型中,开发人员遵循“没有魔法”的原则,例如,创建应用程序所需的注解数量较少或完全没有。 Helidon SE 被选中用于微服务的开发。 (在Helidon 配置文档中了解更多信息)。 request-to=ktor-service { "name": "helidon-service", "framework": { "name": "Helidon SE", Helidon SE 和 Ktor 是 微框架,Spring Boot 和 Micronaut 是全栈框架,Quarkus 和 Helidon MP 是 MicroProfile 框架。
本期项目概览: Jeepay:开源支付系统 document-sharing-site:文档在线检索预览 asyncTool:并行框架 Helidon:用于编写微服务程序的 Java 库 AgileBoot-Back-End jd-platform-opensource/asyncTool 入门教程:https://gitee.com/jd-platform-opensource/asyncTool/blob/master/QuickStart.md Helidon Helidon 拥抱云原生,全面支持 GraalVM Native Image。 相关地址 : 项目地址:https://github.com/helidon-io/helidon 官网:https://helidon.io/ AgileBoot-Back-End:快速开发脚手架
针对 Log4Shell(Log4j)漏洞,其他供应商的声明 甲骨文(Oracle)关于 Helidon 的 声明: 默认情况下,基于 Helidon 的应用程序不会使用 Log4j,Log4j 也不会出现在类路径中 但是 Helidon 提供了一个可选的 Log4j 集成模块( helidon-logging-log4 ),并且 Helidon 会管理 Log4j 的版本。 如果你的应用程序使用了helidon-logging-log4,或者你的应用程序直接使用了 Log4j,那么你的应用程序需声明对 Log4j 的显式依赖。 但是这个依赖的版本可能会被 Helidon 管理。
另外,我们使用了小型、轻量化的框架(Helidon for Java 以及 Go-Kit for Go),两袖清风尝试了 Java 的纯 JAX-RS。 Java 应用程序运行在 JDK 11 与 Helidon 2.0.1 之上。Go 应用程序则使用 Go 1.13.3 进行编译。 ) 是 否 7.38 11216.42 318545KB / 529848KB Java (Helidon) 否 否 0.40 74827.90 307672KB / 489568KB Java (Helidon 以下是各个变体的容器大小: Go 11.6MB Java/Helidon 1.41GB Java/Helidon JLinked 150MB 原生镜像 25.2MB 以下为本轮测试结果: 响应时间图表: Java 的现代版本以及 Helidon 等新型框架在消除 / 减轻 Java 长期存在的某些重大问题(例如冗长、GC 性能、启动时间等)拥有良好的表现。
5、Helidon Helidon 去除了 Java Enterprise Edition,保留轻量级的、基于 servlet 的核心,并吸引了大量的粉丝。 在 Helidon 的,开发人员从 Netty,并添加代码进行路由和错误处理。它采用了代码的两个基本模型,即所谓的 SE 和 MP 版本。 Node 开发者可能更熟悉 Helidon SE,因为其具有由句点连接的函数调用。使用 JAX-RS 的 Java 程序员则更熟悉 Helidon MP。 此外,Helidon 还集成了一些备受好评的工具,这些都是它能够吸引大量开发者的原因。 6、Cricket 另外一个用于快速 API 开发框架的是 Cricket。
(在Helidon上了解更多信息) Helidon MP 是 Eclipse MicroProfile的实现之一,这使得使用许多 API 成为可能,包括 Java EE 开发人员已知的(例如 JAX-RS 在 Helidon SE 模型中,开发人员遵循“没有魔法”的原则,例如,创建应用程序所需的注解数量较少或完全没有。 Helidon SE 被选中用于微服务的开发。 格式的文件进行配置(在Helidon 配置文档中了解更多信息)。 request-to=ktor-service { "name": "helidon-service", "framework": { "name": "Helidon SE Helidon SE 和 Ktor 是 微框架,Spring Boot 和 Micronaut 是全栈框架,Quarkus 和 Helidon MP 是 MicroProfile 框架。
M5、Open Liberty 22.0.0.6 和 22.0.0.7-beta、Quarkus 2.10.0.CR1、Apache Groovy 4.0.3、 Eclipse Mojarra 4.0、Helidon Helidon 甲骨文(Oracle)发布了 Helidon 2.5.1,其中包含很多缺陷修复、依赖项升级,并建议开发人员使用 GraalVM 21.3.2 来局部缓解在本地镜像中使用时出现的间歇性微轮廓容错 此外,甲骨文将不再为 Helidon 应用程序管理 Mockito 了。 JNation 会议已于上周在葡萄牙科英布拉的圣弗朗西斯科修道院(Convento San Francisco)举行,来自 Java 社区的许多演讲者就 Quarkus、DevOps、Log4Shell、Helidon
5、Helidon Helidon 去除了 Java Enterprise Edition,保留轻量级的、基于 servlet 的核心,并吸引了大量的粉丝。 在 Helidon 的,开发人员从 Netty,并添加代码进行路由和错误处理。它采用了代码的两个基本模型,即所谓的 SE 和 MP 版本。 Node 开发者可能更熟悉 Helidon SE,因为其具有由句点连接的函数调用。使用 JAX-RS 的 Java 程序员则更熟悉 Helidon MP。 此外,Helidon 还集成了一些备受好评的工具,这些都是它能够吸引大量开发者的原因。 [在这里插入图片描述] 6、Cricket 另外一个用于快速 API 开发框架的是 Cricket。
以下内容与观点主要源自:https://medium.com/helidon/can-java-microservices-be-as-fast-as-go-5ceb9a45d673 在程序员圈子里,普遍的看法是 Java老、慢、无聊 ,而Go是快、新、酷 为了尽可能的进行一个相对公平的测试,他们使用了一个非常简单的微服务,没有外部依赖关系(比如数据库),代码路径非常短(只是操纵字符串),使用了小型的、轻量级的框架(Helidon Java应用程序运行在JDK11和Helidon2.0.1上。使用Go 1.13.3编译的Go应用程序。 结果如下: 可以看出,第一回合是Go赢了! 和第一轮类似,使用了100个线程,每个线程使用了10,000个循环,10秒的加速时间,以及相同版本的 Go,Java,Helidon 和 GraalVM。 下面是各种不同容器的大小: Go 11.6MB 11.6 MB Java/Helidon 1.41GB 1.41 GB Java/Helidon JLinked 150MB 150mb Native image
到目前为止,MicroProfile规范已经提出了多种实现方式,最著名的是Payara Micro和Helidon MP。 在我看来,Helidon显然是最后一名,因为我为应用程序运行付出了很大的努力。 Helidon MP甚至比Spring慢-平均耗时为8.27秒。 但是,真正的赢家是GraalVM。 Helidon MP耗时414 MB,与Spring Boot类似。 Helidon显然是最后一名,只能提供175 r/s的速度,同时分配超过1 GB的内存。
随着更多框架(如 Spring、Jakarta EE 和 Helidon)以 Java 21 为基础,Java 21 转至 早期采用者类别,同时 Java 17 进入 早期多数类别。 Helidon 和 Vert.x 框架在最新版本中实现了虚拟线程服务器,虚拟线程框架(Helidon Nima 和 Vert.x) 被转移至 早期采用者类别。 由于 Helidon 支持虚拟线程并发布了 Helidon 4.0,Helidon 移至 早期多数类别,而 Helidon 3.0 和 2.0 仍支持反应式服务器。
Helidon Oracle 发布了 Helidon 2.6.0,带来了一些显著的变化,其中包括:仅当enable标志设置为true时才注册OciMetricsSupport服务;依赖项升级到 SnakeYAML 2.0;通过移除未部署的工件来清理 Helidon BOM;从文档中删除了将指标从服务器传播到客户端的说明。
Helidon3.2.18Helidon3.2.18是一个bug修复版本,推荐所有Helidon3用户升级,需要Java17或更高版本。WildFly40.0.1发布!
日的 Java 每周新闻综述,内容主要涉及 OpenJDK、JDK 18、JDK 19、JSR 381 获 JCP 批准、Payara Platform 2022 路线图、 Quarkus 2.7.1、Helidon Helidon 甲骨文公司发布了 Helidon 2.4.2,对 WebServer、WebClient、Fault Tolerance 和 Long-Running Actions 等各种 Helidon
随后,许多具体的实现出现在大家面前,其中最著名的是Payara Micro和Helidon MP。 Helidon则是一个运行时,由Oracle公司在2018年发起,并提供了对于MicroProfile规范的实现。 Helidon在易用性方面是最糟糕的,因为我花了非常大的努力才使得应用程序跑起来。 只有Helidon MP比Spring 启动速度更慢 —— 平均要8.27秒。 Helidon MP则与Spring Boot类似,内存开销在414MB。