微服務框架 spring-cloud 絕非你唯一的選擇

Spring Cloud全家桶的構建是建立在Spring Boot基礎上的,特別上容器化技術已經成熟,以快而著稱,號稱3秒內啓動。其實企業級的docker容器一般內存低於4g(快),如何解決SpringBoot巨耗內存,構建慢,啓動也很慢,這確實是每個架構師一個很值得思考的問題!當然,Spring Cloud的工藝水平有多優秀,更新速度之快,穩定性,成熟度,早已在很多大型的企業級的應用中得到驗證。本文將從更開放的視角看更好的解決方案。

1. Spring Cloud 之殤

社區裏很多人都在反饋Spring Boot,構建比較慢,打包完成後JAR會大約50M,啓動比較慢(Started Application in 10.153 seconds),啓動之後比較佔內存(內存佔用304M)。

壓測30秒,內存佔用1520M(1.5G),CPU上升到321%

而SprintCloud引入的組件會相對多一些,那時消耗的資源也會相對更多一些。

2. Vert.x

背靠Eclipse的Eclipse Vert.x是一個用於在JVM上構建響應式應用程序的工具包。Java能做的,Vert.x都能做。Vert.x底層基於Netty,提供了豐富的IO類庫,支持多種網絡應用開發。Vert.x模塊提供了大量微服務的組件,在很多人眼裏是一種微服務架構的選擇。

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

Vert.x 構建非常快,打包完成後JAR大約7M左右,啓動時間不到1秒(Started Vert.x in 0.274 seconds),啓動之後內存佔用65M

壓測30秒,內存佔139M,CPU佔2.1%,確實很強悍吧!

3. Micronaut

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

4. Helidon

Oracle推出新的開源框架,受NodeJS和其他Java框架的啓發,Helidon的Web服務器是一個異步、反應性API,運行在Netty之上。

5. Javalin

  • 上手極爲容易,非常適合Kotlin和Java程序員;
  • 靈活,可以兼容同步和異步兩種編程思路;
  • 有KOA的影子
  • 只有大約2000行源代碼,源代碼足夠簡單,可以理解和修復;
  • 嵌入式服務器Jetty;

6. SparkJava

  • 輕量級Java Web框架,構建在Jetty Web服務器上;
  • 基於Java 8 lambda表達式構建,上手極爲容易,容易地創建REST API或Web應用程序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章