沒想到Spring Boot竟然這麼耗內存,有點驚訝

Spring Boot整體來講,搭建仍是比較容易的,特別是Spring Cloud全家桶,簡稱親民微服務,但在發展趨勢中,容器化技術已經成熟,面對巨耗內存的Spring Boot,小公司表示用不起。現在,不少剛誕生的JAVA微服務框架大多主打「輕量級」,主要仍是由於Spring Boot過重。git

JAVA系微服務框架

No1-Spring Cloud程序員

介紹編程

有Spring大靠山在,更新、穩定性、成熟度的問題根本不須要考慮。在JAVA系混的技術人員大約都據說過Spring的大名吧,因此不缺程序員……,並且這入手的難度十分低,徹底能夠省去一個架構師。api

可是,你必然在服務器上付出:服務器

  • 至少一臺「服務發現 」的服務器;
  • 可能有一個統一的網關Gateway;
  • 可能須要一個用於「分佈式配置管理」的配置中心;
  • 可能進行「服務追蹤」,知道個人請求從哪裏來,到哪裏去;
  • 可能須要「集羣監控」;
  • 項目上線後發現,咱們須要好多服務器,每次在集羣中增長服務器時,都感受心疼;

壓測30秒架構

壓測前的內存佔用框架

沒想到Spring Boot竟然這麼耗內存,有點驚訝

如圖,內存佔用304M。異步

壓測時的內存佔用分佈式

沒想到Spring Boot竟然這麼耗內存,有點驚訝

如圖,內存佔用1520M(1.5G),CPU上升到321%微服務

概覽

沒想到Spring Boot竟然這麼耗內存,有點驚訝

總結

一個Spring Boot的簡單應用,最少1G內存,一個業務點比較少的微服務編譯後的JAR會大約50M;而Spring Cloud引入的組件會相對多一些,消耗的資源也會相對更多一些。

啓動時間大約10秒左右: Started Application in 10.153 seconds (JVM running for 10.915)

JAVA系響應式編程的工具包Vert.x

介紹

背靠Eclipse的Eclipse Vert.x是一個用於在JVM上構建響應式應用程序的工具包。定位上與Spring Boot不衝突,甚至能夠將Vert.x結合Spring Boot使用。衆多Vert.x模塊提供了大量微服務的組件,在不少人眼裏是一種微服務架構的選擇。

華爲微服務框架Apache ServiceComb就是以Vert.x爲底層框架實現的,在"基準測試網站TechEmpower"中,Vert.x的表現也十分亮眼。

壓測30秒

壓測前的內存佔用

沒想到Spring Boot竟然這麼耗內存,有點驚訝

如圖,內存佔用65M。

壓測時的內存佔用

沒想到Spring Boot竟然這麼耗內存,有點驚訝

如圖,內存佔139M,CPU佔2.1%,給人的感受彷佛並無進行壓測。

概覽

沒想到Spring Boot竟然這麼耗內存,有點驚訝

總結

Vert.x單個服務打包完成後大約7M左右的JAR,不依賴Tomcat、Jetty之類的容器,直接在JVM上跑。

Vert.x消耗的資源很低,感受一個1核2G的服務器已經可以部署許多個Vert.x服務。除去編碼方面的問題,真心符合小項目和小模塊。git市場上已經出現了基於Vert.x實現的開源網關- VX-API-Gateway幫助文檔

https://duhua.gitee.io/vx-api-gateway-doc/

對多語言支持,很適合小型項目快速上線。

啓動時間不到1秒:Started Vert.x in 0.274 seconds (JVM running for 0.274)

JAVA系其餘微服務框架

SparkJava

  • jar比較小,大約10M
  • 佔內存小,大約30~60MB;
  • 性能還能夠,與Spring Boot相仿;

Micronaut

  • Grails團隊新寵;
  • 能夠用 Java、Groovy 和 Kotlin 編寫的基於微服務的應用程序;
  • 相比Spring Boot已經比較全面;
  • 性能較優,編碼方式與Spring Boot比較相似;
  • 啓動時間和內存消耗方面比其餘框架更高效;
  • 多語言;
  • 依賴注入;
  • 內置多種雲本地功能;
  • 很新,剛發佈1.0.0

Javalin

  • 上手極爲容易;
  • 靈活,能夠兼容同步和異步兩種編程思路;
  • JAR小,4~5M;
  • 多語言;
  • 有KOA的影子;
  • 只有大約2000行源代碼,源代碼足夠簡單,能夠理解和修復;
  • 符合當今趨勢;
  • 多語言;
  • 嵌入式服務器Jetty;

Quarkus

  • 啓動快;
  • JAR小,大約10M;
  • 文檔不多;
相關文章
相關標籤/搜索