硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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

作者:A N M Bazlur Rahman

  • 2022-09-25
    北京
  • 本文字数:1032 字

    阅读完需:约 3 分钟

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

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


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


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

阻塞式代码反应式代码
  1. private void one(ServerRequest req, ServerResponse res) {
  2. String response = callRemote(client());
  3. res.send(response);
  4. }
 
  1. private void one(ServerRequest req, ServerResponse res) {
  2. Single<String> response = client.get()
  3. .request(String.class);
  4. response.forSingle(res::send)
  5. .exceptionally(res::send);
  6. }


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


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



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

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

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

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

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


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

  • 跟踪:使用现有的 Helidon 跟踪实现,比如JaegerZipkin

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

  • 跨域资源共享(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仓库的源代码。


原文链接:

Introducing Helidon Níma Using Virtual Threads to Achieve Simplicity and High Performance


相关阅读:

JDK 19 最新动态和 JDK 20 新特性预测

2022-09-25 08:0013451

评论

发布
暂无评论
发现更多内容

Downie 4 for Mac(最好用的视频下载软件)

背包客

macos Mac软件 mac软件下载 Downie 4 Mac版 Downie4

Vue-后置路由守卫(afterEach)以及独享路由守卫(beforeEnter)

不觉心动

6 月 优质更文活动

喜报|瑞云科技荣获“年度汽车数字化营销供应商”奖

3DCAT实时渲染

云仿真 汽车三维可视化 汽车虚拟仿真

数据驱动,支撑企业数智化平台升级

用友BIP

数智平台

vue使用Element-ui组件库-完整引入

我搬去水星了

6 月 优质更文活动

Vue-路由器的两种工作模式(history和hash)

不觉心动

6 月 优质更文活动

NFTScan 与 WalletFrens 达成合作伙伴,由 NFTScan 为其提供多链 NFT 数据服务!

NFT Research

合作 NFT\

Acrobat Pro DC 2023 for Mac(PDF编辑器) 中文最新

背包客

macos Mac软件 pdf编辑工具 Acrobat DC 2023 Acrobat DC

MegEngine 使用小技巧:如何做 MegCC 的模型性能评测

MegEngineBot

深度学习 开源 性能测试 编译器 MegEngine

dart-sass与node-sass的区别以及使用dart-sass可能会出现的问题

不叫猫先生

CSS SASS 6 月 优质更文活动

为开发者“铸剑”,一图揭秘华为云CodeArts IDE四大特性

云计算 开发者 华为云

前端基于DOM或者Canvas实现页面水印

不叫猫先生

Vue canvas 6 月 优质更文活动

建设数字工厂:生产物料齐套检查的实现方法

华为云开发者联盟

华为云 华为云开发者联盟 企业号 6 月 PK 榜

联盟送福利:云上掘金,开启你收入的第二增长曲线

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 6 月 PK 榜

vue使用Element-ui组件库-按需引入

我搬去水星了

6 月 优质更文活动

大型企业在财务共享和财务数智化转型上,如何对标世界一流

用友BIP

财务共享

Vue路由守卫-前置路由守卫(beforeEach)

不觉心动

6 月 优质更文活动

Linux常用命令

Geek_7ubdnf

TS类型声明

不叫猫先生

typescript 6 月 优质更文活动

华为手环、耳机等礼品!等你拿~快来参与CodeArtsBuild实践体验!

云计算 华为 华为云

风口上的AIGC,技术岗动不动年薪百万,甚至重金难求?

引迈信息

人工智能 低代码 AIGC ChatGPT

HStore表全了解:实时入库与高效查询利器

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

vue2.x与vue3.x中自定义指令详解

不叫猫先生

Vue 6 月 优质更文活动

ByteHouse+Apache Airflow:高效简化数据管理流程

字节跳动数据平台

airflow 数据管理 bytehouse

软件测试|抓包工具Charles--出现unknown怎么解决?

霍格沃兹测试开发学社

Spring Security6 全新写法,大变样!

江南一点雨

Java springboot springsecurity

香港便宜虚拟主机:高性能、低成本,让你的网站事半功倍!

一只扑棱蛾子

香港主机 香港便宜虚拟主机

2种GaussDB(DWS)查看作业运行信息方式

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

手势识别技术及其应用

数据堂

GitHub 2800颗星,支持GPT/Transformer,字节跳动这个开源项目是怎么来的?

字节跳动技术范儿

机器学习 nlp

甲骨文新微服务框架Helidon Níma:使用虚拟线程实现高性能_语言 & 开发_InfoQ精选文章