跳到主要内容
版本:4.2.0

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

注意

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

提示

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

注意

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