精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Spring Boot為什么這么耗內存

汽車玩家 ? 來源:Java技術架構 ? 作者:Java技術架構 ? 2020-05-05 22:34 ? 次閱讀

Spring Boot總體來說,搭建還是比較容易的,特別是Spring Cloud全家桶,簡稱親民微服務,但在發展趨勢中,容器化技術已經成熟,面對巨耗內存的Spring Boot,小公司表示用不起。如今,很多剛誕生的JAVA微服務框架大多主打“輕量級”,主要還是因為Spring Boot太重。

JAVA系微服務框架

No1-Spring Cloud

介紹

有Spring大靠山在,更新、穩定性、成熟度的問題根本不需要考慮。在JAVA系混的技術人員大約都聽說過Spring的大名吧,所以不缺程序員……,而且這入手的難度十分低,完全可以省去一個架構師。

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

至少一臺“服務發現 ”的服務器;

可能有一個統一的網關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;

文檔很少;

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    3002

    瀏覽量

    73884
  • JAVA
    +關注

    關注

    19

    文章

    2958

    瀏覽量

    104549
收藏 人收藏

    評論

    相關推薦

    Spring Cloud Gateway網關框架

    SpringCloud Gateway功能特征如下: (1) 基于Spring Framework 5, Project Reactor 和 Spring Boot 2.0 進行構建; (2) 動態路由:能夠匹配任何請求屬性;
    的頭像 發表于 08-22 09:58 ?431次閱讀
    <b class='flag-5'>Spring</b> Cloud Gateway網關框架

    單片機boot0和boot1怎么設置

    單片機Boot0和Boot1簡介 Boot0和Boot1是單片機啟動模式選擇引腳,用于選擇單片機的啟動模式。 Boot0和
    的頭像 發表于 08-22 09:50 ?1861次閱讀

    vue+spring boot人員定位系統源碼,實現實時定位、智慧調度、軌跡追蹤

    、機具、物料上定位標簽回傳的位置信息數據,采用多維定位模式,精確定位人、機具、物料的實時位置,實現實時定位、物料標簽配置、智慧調度、軌跡追蹤、工時統計、區域物料統計、電子圍欄等應用功能。 技術架構:java+ spring boot+ v
    的頭像 發表于 08-08 14:27 ?584次閱讀
    vue+<b class='flag-5'>spring</b> <b class='flag-5'>boot</b>人員定位系統源碼,實現實時定位、智慧調度、軌跡追蹤

    在MDK中使用RTT為什么內存占用這么大?

    為什么在MDK中使用RTT ,內存占用這么大?
    發表于 02-26 07:19

    使用Spring Boot 3.2虛擬線程搭建靜態文件服務器

    Spring Boot 3.2 于 2023 年 11 月大張旗鼓地發布,標志著 Java 開發領域的一個關鍵時刻。這一突破性的版本引入了一系列革命性的功能。
    的頭像 發表于 01-09 09:34 ?1083次閱讀
    使用<b class='flag-5'>Spring</b> <b class='flag-5'>Boot</b> 3.2虛擬線程搭建靜態文件服務器

    Spring狀態機的實現原理和使用方法

    說起 Spring 狀態機,大家很容易聯想到這個狀態機和設計模式中狀態模式的區別是啥呢?沒錯,Spring 狀態機就是狀態模式的一種實現,在介紹 Spring 狀態機之前,讓我們來看看設計模式中的狀態模式。
    的頭像 發表于 12-26 09:39 ?1875次閱讀
    <b class='flag-5'>Spring</b>狀態機的實現原理和使用方法

    Spring事務失效的十種常見場景

    Spring的聲明式事務功能更是提供了極其方便的事務配置方式,配合Spring Boot的自動配置,大多數Spring Boot項目只需要在
    的頭像 發表于 12-11 15:03 ?863次閱讀

    【飛騰派4G版免費試用】Spring Boot和飛騰派融合構建的農業物聯網系統-環境搭建篇

    ntpdate-u 120.25.108.11) 7.安裝MySQL服務器(sudo apt install mysql -server) 遇到問題: 1測試中板子TF卡處發熱較為嚴重。 下期更新: Spring Boot和飛騰派融合構建的農業物聯網系統-實現篇1
    發表于 12-11 15:00

    dubbo和spring cloud區別

    包括了服務提供者、注冊中心、服務消費者等角色。 Spring Cloud是基于Spring Boot的微服務
    的頭像 發表于 12-04 14:47 ?1613次閱讀

    如何在Spring Boot應用程序中整合ZXing庫

    在數字化時代,二維碼已經成為了信息交流的一種常見方式。它們被廣泛用于各種應用,從產品標簽到活動傳單,以及電子支付。本文將向您展示如何在Spring Boot應用程序中整合ZXing庫,以創建和解析QR碼。
    的頭像 發表于 12-03 17:39 ?1061次閱讀

    springboot的優點與缺點

    Spring Boot是一個輕量級的Java開發框架,它基于Spring Framework構建,旨在簡化Spring應用的開發和部署。Spring
    的頭像 發表于 12-03 15:29 ?1422次閱讀

    springboot框架主要用來做什么

    Spring Boot是一個用來簡化Spring應用開發的框架,它使得開發人員能夠快速搭建起一個獨立的、可執行的、基于Spring的應用程序。Spr
    的頭像 發表于 12-03 15:14 ?1486次閱讀

    springboot自動配置的原理介紹

    Spring Boot是一個開源的Java框架,用于構建獨立的、基于微服務的應用程序。它的最大特點是自動配置,能夠根據應用程序的依賴庫和配置文件,智能地自動配置應用程序的各個組件。 在Spring
    的頭像 發表于 12-03 15:12 ?893次閱讀

    Spring MVC的工作原理

    Spring MVC是一種基于Java的Web應用程序框架,它采用了Model-View-Controller(MVC)設計模式來分離應用程序的不同方面。Spring MVC的工作原理涉及多個關鍵
    的頭像 發表于 12-03 11:49 ?748次閱讀

    Spring Boot 3.2支持虛擬線程和原生鏡像

    Spring Boot 3.2 前幾日發布,讓我們用 Java 21、GraalVM 和虛擬線程來嘗試一下。
    的頭像 發表于 11-30 16:22 ?687次閱讀