甲骨文新微服务框架 Helidon Níma:使用虚拟线程实现高性能

2022 年 9 月 28 日 InfoQ

作者 | A N M Bazlur Rahman
译者 | 张卫滨
策划 | 丁晓昀

在 Helidon 伞项目下,甲骨文推出了基于虚拟线程(JEP 425)的新微服务框架 Helidon Níma。它是完全从头构建的,以实现易于使用的编程模型,并具有出色的性能。该技术的预览版已经伴随 Helidon 4.0.0-ALPHA1 版本发布,对最新 Java 技术感兴趣人可以对此进行评估。但是,它尚未达到生产环境就绪状态。

开发人员可以通过 Helidon MP 或 Helidon SE 使用常规的 Helidon 框架达到一定的吞吐量,但是如果应用需要更高的性能,他们唯一能做的就是采用基于反应式的服务。但值得一提的是,编写、维护和调试基于反应式的服务更具挑战性。

Helidon Níma 使用虚拟线程来解决这个问题,因为基于虚拟线程,阻塞的成本是很低的,所以我们可以创建数以百万计的虚拟线程。因此,这提供了一个恒定的、低开销的、高并发的服务器,同时能够保持阻塞式的线程模型。开发人员通过最小的支撑功能就可以编写简单、可调试和易维护的代码。请考虑如下的样例:

阻塞式代码 

private void one(ServerRequest req, ServerResponse res) {    String response = callRemote(client());    res.send(response);}

反应式代码

private void one(ServerRequest req, ServerResponse res) {    Single<String> response = client.get()            .request(String.class);    response.forSingle(res::send)            .exceptionally(res::send);}

阻塞式代码和反应式代码都能完成相同的目标,但是,反应式代码对认知的要求更高,学习曲线更陡峭,并且难以维护。正如甲骨文的架构师 Tomas Langer 在最初的博客文章中所说的那样,在较为复杂的用例中,这一点会更明显。

按照 Langer 的说法,Heldion Níma 主要的关注点是性能,它也的确产生了一定的效果,如下图所示。

这个 Alpha 版本支持如下的协议:

  • 支持 pipelining 的 HTTP/1.1:客户端和服务器端。

  • HTTP/2 服务器端(原型状态,包含已知的问题)

  • gRPC 服务器端(原型状态,包含已知的问题)

  • WebSocket 服务器端(原型状态)

除此之外,它还支持如下的特性:

  • 跟踪:使用现有的 Helidon 跟踪实现,比如 Jaeger 或 Zipkin

  • 静态内容:来自类路径或文件系统

  • 跨域资源共享(CORS)

  • 访问日志

  • 可观测性端点(健康状态、应用信息、配置)

  • 容错(舱壁、断路器、重试和超时特性)

  • HTTP/1.1 客户端

  • 测试

在这些特性之上,它还使用了新的 Java 语言特性,如 密封类(sealed classes) 和增强的 switch 表达式。

Helidon Níma 是一个完全开源的框架,是 Helidon 代码库的一部分。尽管 Helidon 项目是基于 Netty 的,但是甲骨文公司的软件开发人员 Dmitry Aleksandrov 在他的博客文章中提到:

Helidon Níma 网络服务器计划在 Helidon 生态系统中取代 Netty。它也可以被其他框架以嵌入式 Web 服务器组件的形式使用。

希望评估 Helidion Níma 的开发人员可以参阅 Tomas Langer 的初始博客文章和托管在 GitHub 仓库的源代码。

原文链接:

https://www.infoq.com/news/2022/09/introducing-helidon-nima/

相关阅读:

https://www.infoq.cn/article/0AXykmqvf5lHZsEQtjBp

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

字节跳动现象级 App 十年成长史,移动端基础建设与组织演进之路 | 卓越技术团队访谈录

满心欢喜入职 Gitpod 一年后失望离开:垃圾邮件当 OKR、天天造势但就不兑现承诺

钉钉总裁称非常讨厌红点和 DING 消息;Mozilla 控诉苹果、谷歌和微软锁定浏览器;特斯拉上海工人薪酬曝光:到手七八千|Q 资讯

接手了一座年收入 2000 万美元的代码“屎山”,我到底是该重写还是该跳槽?

登录查看更多
0

相关内容

Oracle 公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州 Redwood shore。
【2022新书】构建微服务:设计细粒度系统,615页pdf
专知会员服务
89+阅读 · 2022年9月4日
增强现实(AR)技术在增强型指挥与控制中的应用
专知会员服务
50+阅读 · 2022年6月9日
找工作实用书《LeetCode 题解》,262页pdf
专知会员服务
129+阅读 · 2021年12月2日
面向大数据处理框架的JVM优化技术综述
专知会员服务
16+阅读 · 2021年11月27日
专知会员服务
54+阅读 · 2021年7月21日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
微软全力拥抱 Java !
CSDN
0+阅读 · 2022年9月7日
Meta在服务器端用了哪些编程语言?
InfoQ
0+阅读 · 2022年7月29日
34 年了,“杀”不死的 Perl!
CSDN
0+阅读 · 2021年12月24日
开源微服务编排框架:Netflix Conductor
阿里技术
1+阅读 · 2021年12月2日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Arxiv
0+阅读 · 2022年11月28日
Arxiv
0+阅读 · 2022年11月28日
Arxiv
0+阅读 · 2022年11月25日
Arxiv
0+阅读 · 2022年11月24日
VIP会员
相关基金
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Top
微信扫码咨询专知VIP会员