來源:https://juejin.cn/post/6844903796573732878
前言
Spring Boot總體來說,搭建還是比較容易的,特別是Spring Cloud全家桶,簡稱親民微服務,但在發展趨勢中,容器化技術已經成熟,面對巨耗記憶體的Spring Boot,小公司表示用不起,
如今,很多剛誕生的JAVA微服務框架大多主打“輕量級”,主要還是因為Spring Boot太重,
JAVA系微服務框架No1-Spring Cloud
介紹
有Spring大靠山在,更新、穩定性、成熟度的問題根本不需要考慮,在JAVA系混的技術人員大約都聽說過Spring的大名吧,所以不缺程式員……,而且這入手的難度十分低,完全可以省去一個架構師,
但是,你必然在服務器上付出:
- 至少一臺“服務發現 ”的服務器;
- 可能有一個統一的網關Gateway;
- 可能需要一個用于“分布式配置管理”的配置中心;
- 可能進行“服務追蹤”,知道我的請求從哪里來,到哪里去;
- 可能需要“集群監控”;
- 專案上線后發現,我們需要好多服務器,每次在集群中增加服務器時,都感覺心疼;
壓測30秒
壓測前的記憶體占用

如圖,記憶體占用304M,
壓測時的記憶體占用

如圖,記憶體占用1520M(1.5G),CPU上升到321%
概覽

總結
一個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秒
壓測前的記憶體占用

如圖,記憶體占用65M,
壓測時的記憶體占用

如圖,記憶體占139M,CPU占2.1%,給人的感覺似乎并沒有進行壓測,
概覽

總結
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;
- 檔案很少,
近期熱文推薦:
1.1,000+ 道 Java面試題及答案整理(2022最新版)
2.勁爆!Java 協程要來了,,,
3.Spring Boot 2.x 教程,太全了!
4.20w 程式員紅包封面,快快領取,,,
5.《Java開發手冊(嵩山版)》最新發布,速速下載!
覺得不錯,別忘了隨手點贊+轉發哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/430185.html
標籤:Java
