对于最新稳定版本,请使用 Spring Boot 4.0.4spring-doc.cadn.net.cn

使用 JVM 进行检查点保存与恢复

检查点协调恢复(CRaC)是一个 OpenJDK 项目,它定义了一套新的 Java API,允许你在 HotSpot JVM 上对应用程序进行检查点保存和恢复。 它基于 CRIU 项目,该项目在 Linux 上实现了检查点/恢复功能。spring-doc.cadn.net.cn

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

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

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

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