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
)