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