JVM 检查点和恢复

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

其原理如下:你几乎像往常一样启动应用程序,但使用支持 CRaC 的 JDK 版本,例如 BellSoft Liberica JDK with CRaCAzul Zulu JDK with CRaC。然后在某个时刻,可能是在执行了所有常见代码路径以预热 JVM 后,你通过 API 调用、jcmd 命令、HTTP 端点或不同的机制触发检查点。

正在运行的 JVM 的内存表示(包括其预热状态)随后会被序列化到磁盘,以便稍后能够快速恢复,可能是在具有类似操作系统和 CPU 架构的另一台机器上。恢复后的进程保留了 HotSpot JVM 的所有功能,包括在运行时进一步的 JIT 优化。

基于 Spring Framework 提供的基础,Spring Boot 提供了对应用程序检查点和恢复的支持,并 在有限的范围内 开箱即用地管理诸如套接字、文件和线程池等资源的生命周期。对于其他依赖项以及可能涉及这些资源的应用程序代码,预计还需要额外的生命周期管理。

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

© . This site is unofficial and not affiliated with VMware.