通往Spring Boot本機應用的道路:Spring GraalVM Native 0.7.0可以使用了 - spring.io
本機映象(Native image)提供了一種構建和執行具有不同於常規JVM部署特性的Spring Boot應用程式的方法:
- 輸出是一個本機可執行檔案,其中包含您的應用程式以及JDK的子集以及執行它所需的依賴項。
- 實際上,可執行檔案可能會以高度最佳化的容器映象(FROM scratch支援Docker映象)的形式提供,該容器映像非常適合K8。
- 啟動時間幾乎是即時的,並且可以立即獲得峰值效能,從而支援從零縮放(無伺服器)應用程式,包括常規的Spring Boot Web應用程式。
- 減少了記憶體消耗,這非常適合拆分為多個微服務的系統。
如您所料,本地映像不是免費的午餐,並且這些有趣的功能還具有一些缺點:
- GraalVM本機是一個年輕的平臺,遠沒有JVM成熟。
- JVM庫尚未很好地支援這種新的Java風格並對其進行了測試。
- 它需要初始化,資源,反射和代理顯式配置。
- 生成時間很長,並且生成記憶體消耗很高。
- 較低的吞吐量和較高的延遲。
Spring團隊目前正在與GraalVM團隊積極合作,以確保在編譯為本地映象時,Spring包括透過Spring Boot整合的JVM生態系統在全球範圍內都能正常執行。這項工作包括GraalVM本機中的修復和新功能,對Spring本身的更改,還包括為改進此GraalVM本機平臺的可測試性和可維護性所做的其他工作。
還值得注意的是,自Mark Reinhold最近宣佈Project Leyden以來,本機映象的範圍現在已超過GraalVM ,該專案旨在在Java平臺級別上標準化本機映象。
Spring GraalVM Native 0.7.0
我很高興宣佈Spring GraalVM Native 0.7.0可用。spring-graalvm-native這是一個實驗性專案,我們目前在其中孵化對Spring Boot應用程式的本機映象支援,這個新的里程碑引入了以下改進:
- Spring Boot 2.3.0和GraalVM 20.1.0為基線基礎。
- 帶有執行器,Spring Data JPA儲存庫和快取的Petclinic JPA規範樣本。
- Spring Data MongoDB支援。
- 改進的Kotlin支援。
- 改進的日誌記錄支援。
- Spring Cloud Function支援。
- 基於容器的構建環境。
您可以閱讀詳細的變更日誌和 文件。還有其他改進值得深入探討。
相關文章
- Spring Native釋出:使用GraalVM將Spring應用編譯為本機映象SpringLVM編譯
- 將Spring Boot應用變成GraalVM本機映象快速執行 - codecentricSpring BootLVM
- 結合GraalVM與Spring Native的Spring Boot原始碼教程 | foojayLVMSpring Boot原始碼
- 在GraalVM中部署執行Spring Boot應用 - Indrek OtsLVMSpring Boot
- 重要版本Spring Boot 2.3.0釋出 - spring.ioSpring Boot
- RSocket入門:Spring Boot伺服器 -Spring.ioSpring Boot伺服器
- Spring Boot 之路(一):一個簡單的Spring Boot應用Spring Boot
- 更快更省:帶有新AOT引擎的Spring Native 0.11 釋出 - spring.ioSpring
- spring-boot-route(十八)spring-boot-adtuator監控應用Springboot
- Spring Boot 應用程式中的 QueryDSLSpring Boot
- WebClient: Spring的新的HTTP反應式客戶端 - spring.ioWebclientSpringHTTP客戶端
- Spring Cloud Stream事件路由 - spring.ioSpringCloud事件路由
- Spring Cloud Gateway入門 - spring.ioSpringCloudGateway
- Spring boot應用如何支援httpsSpring BootHTTP
- 使用Spring GraalVM Native外掛提高SpringBoot啟動時間94%LVMSpring Boot
- Intellij IDEA 中 的spring boot 專案使用了spring-boot-devtools要做的兩個設定IntelliJIdeaSpring Bootdev
- Spring Boot 和 Spring Cloud 應用記憶體如何管理?Spring BootCloud記憶體
- Spring Boot從2.3.0M1開始使用Gradle而不是Maven了 - spring.ioSpring BootGradleMaven
- Spring Boot應用監控實戰Spring Boot
- Spring Boot應用程式有哪些功能?Spring Boot
- Spring Boot + Kotlin + Coroutines應用演示程式Spring BootKotlin
- Spring Boot應用程式事件教程 - reflectoringSpring Boot事件
- 如何預熱Spring Boot應用? - sebsteinSpring Boot
- Spring Boot + MongoDB 應用的 Docker 化實踐Spring BootMongoDBDocker
- Spring Data Moore有哪些新功能? - spring.ioSpring
- 現在是時候了與Spring Boot 1.x說再見了! - spring.ioSpring Boot
- 用Spring Boot顛覆Java應用開發Spring BootJava
- 使用Spring Boot和GraalVM在Knative上構建微服務 - piotrSpring BootLVM微服務
- spring-boot-plus1.1.0.釋出-整合Spring Boot Admin管理和監控應用Spring Boot
- Spring Boot Admin2.1應用監控Spring Boot
- Spring Boot 應用程式啟動流程分析Spring Boot
- 如何優雅地停止 Spring Boot 應用?Spring Boot
- Spring Boot 響應jspSpring BootJS
- 最佳化Spring Boot應用的Docker打包速度Spring BootDocker
- Spring Boot應用程式中的常用註釋列表Spring Boot
- 用了Redisson的Spring Boot Starter搞的我都想重寫個RedisSpring Boot
- Spring Boot 2 + Spring Security 5 + JWT 的單頁應用Restful解決方案Spring BootJWTREST
- Spring Boot 單體應用一鍵升級成 Spring Cloud AlibabaSpring BootCloud