@levinzhang
2022-09-22T21:11:22.000000Z
字数 1661
阅读 352
by
在Helidon伞项目下,甲骨文推出了基于虚拟线程(JEP 425)的新微服务框架Helidon Níma。它是完全从头构建的,以实现易于使用的编程模型,并具有出色的性能。该技术的预览版已经伴随Helidon 4.0.0-ALPHA1版本发布,对最新Java技术感兴趣人可以对此进行评估。
在Helidon伞项目下,甲骨文推出了基于虚拟线程(JEP 425)的新微服务框架Helidon Níma。它是完全从头构建的,以实现易于使用的编程模型,并具有出色的性能。该技术的预览版已经伴随Helidon 4.0.0-ALPHA1版本发布,对最新Java技术感兴趣人可以对此进行评估。但是,它尚未达到生产环境就绪状态。
开发人员可以通过Helidon MP或Helidon SE使用常规的Helidon框架达到一定的吞吐量,但是如果应用需要更高的性能,他们唯一能做的就是采用基于反应式的服务。但值得一提的是,编写、维护和调试基于反应式的服务更具挑战性。
Helidon Níma使用虚拟线程来解决这个问题,因为基于虚拟线程,阻塞的成本是很低的,所以我们可以创建数以百万计的虚拟线程。因此,这提供了一个恒定的、低开销的、高并发的服务器,同时能够保持阻塞式的线程模型。这允许开发人员通过最小的支撑功能就可以编写简单、可调试和易维护的代码。请考虑如下的样例:
阻塞式代码 | 反应式代码 |
|
|
阻塞式代码和反应式代码都能完成相同的目标,但是,反应式代码对认知的要求更高,学习曲线更陡峭,并且难以维护。正如甲骨文的架构师Tomas Langer在最初的博客文章中所说的那样,在较为复杂的用例中,这一点会更明显。
按照Langer的说法,Heldion Níma主要的关注点是性能,它也的确产生了一定的效果,如下图所示。
这个alpha版本支持如下的协议:
除此之外,它还支持如下的特性:
在这些特性之上,它还使用了新的Java语言特性,如密封类(sealed classes)和增强的switch表达式。
Helidon Níma是一个完全开源的框架,是Helidon代码库的一部分。尽管Helidon项目是基于Netty的,但是甲骨文公司的软件开发人员Dmitry Aleksandrov在他的博客文章中提到:
Helidon Níma网络服务器计划在Helidon生态系统中取代Netty。它也可以被其他框架以嵌入式Web服务器组件的形式使用。
希望评估Helidion Níma的开发人员可以参阅Tomas Langer的初始博客文章和托管在GitHub仓库的源代码。
查看英文原文:Introducing Helidon Níma Using Virtual Threads to Achieve Simplicity and High Performance