Skip to content

GraalVM

示例项目: graalvm

Ktor 服务器应用程序可以利用 GraalVM 为不同平台生成原生镜像,当然,还能利用 GraalVM 提供的更快的启动时间和其他优势。

目前,想要利用 GraalVM 的 Ktor 服务器应用程序必须使用 CIO 作为 应用程序引擎

为 GraalVM 做准备

除了安装 GraalVM 并将安装目录添加到系统路径之外,你还需要准备好你的应用程序,以便捆绑所有依赖项,即你需要创建一个 fat jar。

反射配置

对于使用反射的应用程序,GraalVM 有 一些要求,而 Ktor 正是这种情况。它要求你为其提供一个包含特定类型信息的 JSON 文件。然后将此配置文件作为参数传递给 native-image 工具。

执行 native-image 工具

一旦 fat jar 准备就绪,唯一需要的步骤就是使用 native-image 命令行工具创建原生镜像。这也可以通过 Gradle 插件 来完成。你可以在此处查看 build.gradle.kts 文件的示例。但是,请注意,某些选项可能会根据所使用的依赖项、项目的软件包名称等而有所不同。

运行生成的二进制文件

如果 shell 脚本执行时没有任何错误,你应该会得到一个原生应用程序,在本示例中名为 graal-server。执行它将启动 Ktor 服务器,响应地址为 https://0.0.0.0:8080

//: # (

代码示例: deployment-ktor-plugin

)