领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我很高兴宣布 Spring Modulith 2.0 M1 发布。它标志着新一代的起点,因此基于最新的 Spring Boot 4 M1 版本和 Spring Framework 7.0 M7。即将到来的 Spring Modulith 新一代的主要特性将是改进的事件发布注册表,它将解决当前版本中的许多限制 。
Spring Modulith 2.0 M1 发布了注册表预期中的主要变更,JDBC 实现也进行了调整,以支持新的事件发布状态模型。所有其他存储模块都已更新,以继续工作,但会将新的状态转换转换为无操作,以便现有应用程序能像以前一样继续工作。如果您想试用新的注册表,这里有一些关于它的详细信息。
新的事件发布注册表引入了事件发布可能处于的新状态。我们引入了“已发布”、“处理中”、“失败”和“重新提交”等专用状态,如下所示。
我们之前模型的主要挑战在于,我们无法区分当前正在处理的发布和已经失败的发布。重新提交功能也面临挑战。新模型允许我们明确检测各个状态,甚至支持多实例应用程序部署,而无需分布式锁定。
EventPublicationRegistry 实现已更新以利用新状态。我们还引入了陈旧监视器,以确保任何可能陷入某个状态的事件发布在特定持续时间后可以被视为失败。一个新的属性命名空间 spring.modulith.events.staleness.… 已被引入,用于控制在特定持续时间后处于某些状态的发布何时被视为失败。
第一个支持新模型的模块是 JDBC 模块。虽然我们最初的想法是事件发布注册表实现技术与应用程序的通用持久性机制保持一致,但我们也鼓励所有 JPA 项目尝试基于 JDBC 的注册表。它应该可以无缝工作,因为数据模型完全独立于您的应用程序数据模型。请确保调整您的数据库迁移工具以更改数据库表,使其符合参考文档中描述的新模式。票证中最初的宣布评论包含了新注册表工作的示例日志输出。
如果您只想升级到 Spring Modulith 2.0 M1,但仍使用旧注册表模式,您可以将 spring.modulith.events.jdbc.use-legacy-structure 设置为 true。完整的变更日志可在此处查看。我们敦促您尝试该里程碑版本并报告您遇到的任何反馈。