跳到主要内容

AOT 和原生镜像支持

DeepSeek V3 中英对照 AOT and Native Image Support

4.0.0 版本起,Spring Cloud Config Server 支持 Spring AOT 转换。从 4.1.0 版本开始,它还支持 GraalVM 原生镜像,但前提是使用 GraalVM 21 或更高版本。然而,用户需要针对已知的 GraalVM 问题添加一些变通方案,如下所述。

重要提示

由于 Graal 的 FileSystemProvider 中存在 一个 bug,需要添加一个配置变通方案,以允许 Config Server 作为原生镜像运行。你需要在 GraalVM 构建插件设置中添加以下选项(更多详情请参考 GraalVM Maven 或 Gradle 插件文档):

-H:-AddAllFileSystemProviders
--strict-image-heap
--initialize-at-build-time=org.bouncycastle
--initialize-at-build-time=net.i2p.crypto.eddsa.EdDSASecurityProvider
--initialize-at-run-time=org.bouncycastle.jcajce.provider.drbg.DRBG$Default
--initialize-at-run-time=org.bouncycastle.jcajce.provider.drbg.DRBG$NonceAndIV
none

注意

添加额外的构建时初始化可能会影响性能,但与常规的 JVM 运行相比,它仍然可能带来性能提升。请确保为您的应用程序进行测量和比较。

提示

如果你通过 SSH 连接到配置数据后端,请注意 GraalVM 需要使用 java.security 进行安全提供者注册

注意

原生镜像不支持刷新范围。如果你打算将配置客户端应用程序作为原生镜像运行,请确保将 spring.cloud.refresh.enabled 属性设置为 false