|
此版本仍在开发中,尚未被视为稳定版本。如需最新稳定版本,请使用 Spring Boot 4.0.4! |
使用 JVM 进行检查点和恢复
检查点处的协调恢复 (CRaC) 是一个 OpenJDK 项目,定义了一个新的 Java API,允许您在 HotSpot JVM 上对应用程序进行检查点和恢复。 它基于 CRIU,这是一个在 Linux 上实现检查点/恢复功能的项目。
原则如下:您几乎可以像往常一样启动应用程序,但需要使用启用了 CRaC 的 JDK 版本,例如 BellSoft Liberica JDK with CRaC 或 Azul Zulu JDK with CRaC。
然后,在某个时刻,可能是在执行所有常见代码路径以预热 JVM 的一些工作负载之后,您可以通过 API 调用、jcmd 命令、HTTP 端点或其他机制触发一个检查点。
运行中的 JVM 的内存表示,包括其热态信息,随后会被序列化到磁盘,从而允许在稍后快速恢复,甚至可能在另一台具有类似操作系统和 CPU 架构的机器上进行恢复。 恢复后的进程保留了 HotSpot JVM 的所有功能,包括在运行时进一步的 JIT 优化。
基于 Spring Framework 提供的基础,Spring Boot 为您的应用程序提供了检查点和恢复支持,并在< a t="C0">有限范围内对套接字、文件和线程池等资源的生命周期进行开箱即用的管理。 预计还需要对其他依赖项以及可能涉及此类资源的应用程序代码进行额外的生命周期管理。
您可以在Spring Framework JVM Checkpoint Restore 支持文档中找到有关两种支持模式(“运行中的应用程序按需检查点/恢复”和“启动时自动检查点/恢复”)、如何启用检查点和恢复支持以及一些指南的更多详细信息。