此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Boot 3.5.5spring-doc.cadn.net.cn

使用 JVM 进行检查点和恢复

Coordinated Restore at Checkpoint (CRaC) 是一个 OpenJDK 项目,它定义了一个新的 Java API,允许您在 HotSpot JVM 上检查点和恢复应用程序。它基于 CRIU,这是一个在 Linux 上实现检查点/恢复功能的项目。spring-doc.cadn.net.cn

其原理如下:您几乎像往常一样启动应用程序,但使用启用了 CRaC 的 JDK 版本,例如 BellSoft Liberica JDK with CRaCAzul Zulu JDK with CRaC。然后在某个时候,可能在一些工作负载之后,通过执行所有常见代码路径来预热您的 JVM,您使用 API 调用触发检查点,即jcmd命令、HTTP 端点或其他机制。spring-doc.cadn.net.cn

然后,正在运行的 JVM 的内存表示(包括其暖度)被序列化到磁盘,从而允许在以后快速恢复,可能在另一台具有类似作系统和 CPU 架构的机器上进行。恢复的进程保留了 HotSpot JVM 的所有功能,包括在运行时进行进一步的 JIT 优化。spring-doc.cadn.net.cn

基于 Spring Framework 提供的基础,Spring Boot 支持检查点和恢复应用程序,并在有限的范围内管理资源(如套接字、文件和线程池)的开箱即用生命周期。对于其他依赖项,以及可能处理此类资源的应用程序代码,需要进行额外的生命周期管理。spring-doc.cadn.net.cn

您可以在 Spring Framework JVM Checkpoint Restore 支持文档中找到有关支持的两种模式(“按需检查点/正在运行的应用程序的恢复”和“启动时自动检查点/恢复”)、如何启用检查点和恢复支持以及一些指南的更多详细信息。spring-doc.cadn.net.cn