把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

Kotlin HTTP Toolkit Ktor 3.0 改进性能,并支持服务器发送事件

作者:Sergio De Simone

  • 2024-11-21
    北京
  • 本文字数:870 字

    阅读完需:约 3 分钟

Kotlin HTTP Toolkit Ktor 3.0改进性能,并支持服务器发送事件

Ktor 是一个原生的 Kotlin 框架,可用于创建异步 HTTP 服务器和客户端应用程序。Ktor 3.0 已发布。该版本采用了 kotlinx-io,虽然带来了一些破坏性更改,但性能却有所提升,并且增加了服务器发送事件、CSFR、从 ZIP 文件提供静态资源等特性。


kotlinx-io 是围绕Buffer这个抽象概念构建的底层 I/O 库。Buffer是一个可变的字节序列,它的工作方式和队列类似。也就是说,你可以向其尾部写入数据,并从其头部读取数据。Ktor 3 的破坏性变化主要影响了底层 IO API,涉及InputOutputByteReadChannelByteWriteChannel等类型。直接使用它们的开发人员需要修改他们的应用程序,迁移到新的 API。


kotlinx-io 的主要好处是提升了性能:


我们减少了 ByteReadChannel、ByteWriteChannel 与网络接口之间不必要的字节复制。这样可以提高字节转换和解析的效率,为未来的性能提升留出空间。


JetBrains 表示,根据他们自己的基准测试,Ktor 的这个新版本显著缩短了文件和套接字操作所需的时间,在某些情况下可缩短 90%。


除了性能提升之外,Ktor 3.0 最重要的变化是支持服务器发送事件。这是一种服务器推送技术,可以创建服务器到客户端的通信通道。在数据以单向流动为主的情况下,尤其是需要规避防火墙阻塞或处理连接中断时,服务器发送事件比 WebSockets 更为可取。另一方面,WebSockets 效率更高,延迟更低。


Ktor 3.0 还提供了其他一些有用的特性,包括支持跨站点请求伪造(CSRF)(可以针对任何给定的路由指定)以及直接从 ZIP 文件提供静态资源的能力。ZIP 文件从基本路径提供,可能会包括子目录,这会反映在 URL 结构中。


关于 Ktor 3,最后一点需要注意的是,Ktor 客户端现在支持将 Wasm 作为构建目标。不过,Kotlin/Wasm 仍处于 Alpha 测试阶段,因此,Ktor 3 中的 Wasm 支持尚未到达生产就绪状态。


要使用 Ktor 启动一个新项目,请访问 Ktor 网站并选择最符合你需求的插件,涉及身份验证、路由、监控、序列化等。如果你想将现有的 Ktor 2 项目改为使用 Ktor 3,请务必阅读 JetBrains 提供的迁移指南。


查看原文链接:

https://www.infoq.com/news/2024/10/ktor-3-kotlin-http-server/

2024-11-21 08:008737

评论

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

写作训练营打卡1--最喜欢的极客时间作者

Avril

PAM助力政府信息安全建设

尚思卓越

信息安全 数据安全 特权账号管理

inBuilder低代码平台新特性推荐-第十四期

inBuilder低代码平台

低代码

诚邀报名|黄向东邀您共话开源工业物联网大数据

开放原子开源基金会

Java 开源 程序员 开发者 算法

构建第一个事件驱动型 Serverless 应用

亚马逊云科技 (Amazon Web Services)

Serverless S3 Amazon Lambda Amazon DynamoDB Amazon Cognito

IT外包的三种模式

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

走心推荐!10款能让你的企业管理事半功倍的咨询软件。

彭宏豪95

科技 在线白板 咨询 在线协作 效率软件

2023 Flink Forward Asia 参会指南来啦!

Apache Flink

大数据 flink

深度|低代码开发平台和微服务架构的优势与挑战

codebee

DDD 低代码 微服务、

MySQL 8.0 索引跳跃扫描

红袖添香

InnoDB存储引擎 数据库索引 MySQL 8.0 索引跳跃

2023-12-06:用go语言,给你一个由 n 个数对组成的数对数组 pairs, 其中 pairs[i] = [lefti, righti] 且 lefti < righti 。 现在,我们定义一

福大大架构师每日一题

福大大架构师每日一题

解锁全球潜力:IT外包解决跨国企业海外分支的IT需求

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

区块链软件开发:浏览区块链开发平台

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

果然!低代码是程序员接私活的隐藏福利

伤感汤姆布利柏

程序员 低代码 接私活

论架构师的关注点:专业向下·业务向上

凌晞

企业架构 架构设计 业务架构

Databend 如何利用 GPT-4 进行质量保证

Databend

什么?你还不会 OpenTiny 跨框架组件库适配微前端?

OpenTiny社区

开源 前端 微前端 组件库

一文读懂AQS的前世今生

是月月啊2023

Java 面试题

JDK1.8 ConcurrentHashMap 核心源码(面试重点)

是月月啊2023

游戏出海“变局”,中东非正成为下一块热土?

最新动态

Quartz核心原理之架构及基本元素介绍

不在线第一只蜗牛

架构 前端 quartz 系统搭建

伊克罗德信息的强大合作伙伴—Palo Alto Networks 更新 Prisma Cloud,增强云原生代码保护能力!

伊克罗德信息科技

云原生 网络安全 palo alto

AI文生视频或将为出海营销打开竞争新维度

新消费日报

金义中央大道通车│三思智慧综合杆&道路照明系统方案点亮23公里智慧公路

电子信息发烧客

耗时三年开源的H5商城,强烈推荐

越长大越悲伤

Java 开源 springboot

GPU在元宇宙中的作用—元宇宙云端解决方案

3DCAT实时渲染

元宇宙 实时渲染

Kotlin HTTP Toolkit Ktor 3.0改进性能,并支持服务器发送事件_编程语言_InfoQ精选文章