領先一步
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。完整的變更日誌可在此處檢視。我們敦促您嘗試該里程碑版本並報告您遇到的任何反饋。