AOT 和 Native Image 支持
从 4.0.0
开始,Spring Cloud Config Server 支持 Spring AOT 转换。从 4.1.0
开始,它也支持 GraalVM 原生镜像,只要使用 GraalVM 21 或更高版本,但是它要求用户为已知的 GraalVM 问题添加一些解决方法,如下所述。
- 重要
-
由于 Graal 的
FileSystemProvider
中存在 [一个错误](github.com/oracle/graal/issues/5134),需要添加配置解决方法以允许 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 。 |