<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          驚呆了,Spring Boot居然這么耗內(nèi)存!你知道嗎?

          共 2013字,需瀏覽 5分鐘

           ·

          2021-04-22 20:51

          作者 | 襄垣

          來源 | juejin.cn/post/6844903796573732878


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

          No1-Spring Cloud

          介紹

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

          但是,你必然在服務(wù)器上付出:

          • 至少一臺“服務(wù)發(fā)現(xiàn) ”的服務(wù)器;
          • 可能有一個統(tǒng)一的網(wǎng)關(guān)Gateway;
          • 可能需要一個用于“分布式配置管理”的配置中心;
          • 可能進行“服務(wù)追蹤”,知道我的請求從哪里來,到哪里去;
          • 可能需要“集群監(jiān)控”;
          • 項目上線后發(fā)現(xiàn),我們需要好多服務(wù)器,每次在集群中增加服務(wù)器時,都感覺心疼;

          壓測30秒

          壓測前的內(nèi)存占用

          如圖,內(nèi)存占用304M。

          壓測時的內(nèi)存占用

          如圖,內(nèi)存占用1520M(1.5G),CPU上升到321%

          概覽

          總結(jié)

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

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

          JAVA系響應(yīng)式編程的工具包Vert.x

          介紹

          背靠Eclipse的Eclipse Vert.x是一個用于在JVM上構(gòu)建響應(yīng)式應(yīng)用程序的工具包。定位上與Spring Boot不沖突,甚至可以將Vert.x結(jié)合Spring Boot使用。眾多Vert.x模塊提供了大量微服務(wù)的組件,在很多人眼里是一種微服務(wù)架構(gòu)的選擇。

          華為微服務(wù)框架Apache ServiceComb就是以Vert.x為底層框架實現(xiàn)的,在"基準(zhǔn)測試網(wǎng)站TechEmpower"中,Vert.x的表現(xiàn)也十分亮眼。

          壓測30秒

          壓測前的內(nèi)存占用

          如圖,內(nèi)存占用65M。

          壓測時的內(nèi)存占用

          如圖,內(nèi)存占139M,CPU占2.1%,給人的感覺似乎并沒有進行壓測。

          概覽

          總結(jié)

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

          Vert.x消耗的資源很低,感覺一個1核2G的服務(wù)器已經(jīng)能夠部署許多個Vert.x服務(wù)。除去編碼方面的問題,真心符合小項目和小模塊。git市場上已經(jīng)出現(xiàn)了基于Vert.x實現(xiàn)的開源網(wǎng)關(guān)- 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系其他微服務(wù)框架

          SparkJava

          • jar比較小,大約10M
          • 占內(nèi)存小,大約30~60MB;
          • 性能還可以,與Spring Boot相仿;

          Micronaut

          • Grails團隊新寵;
          • 可以用 Java、Groovy 和 Kotlin 編寫的基于微服務(wù)的應(yīng)用程序;
          • 相比Spring Boot已經(jīng)比較全面;
          • 性能較優(yōu),編碼方式與Spring Boot比較類似;
          • 啟動時間和內(nèi)存消耗方面比其他框架更高效;
          • 多語言;
          • 依賴注入;
          • 內(nèi)置多種云本地功能;
          • 很新,剛發(fā)布1.0.0

          Javalin

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

          Quarkus

          • 啟動快;
          • JAR小,大約10M;
          • 文檔很少;


          1、全網(wǎng)最全 Java 日志框架適配方案!還有誰不會?
          2、Chrome瀏覽器最新高危漏洞曝光!升級最新版也沒用~
          3、Spring中毒太深,離開Spring我居然連最基本的接口都不會寫了
          4、黑客用GitHub服務(wù)器挖礦,三天跑了3萬個任務(wù),代碼驚現(xiàn)中文
          5、瀏覽器輸入「xxxxhub」的背后.....
          6、Gradle真能干掉Maven?今天體驗了一把,賊爽!
          7、如何重構(gòu)千行“又臭又長”的類?IntelliJ IDEA 幾分鐘就搞定!

          點分享

          點收藏

          點點贊

          點在看

          瀏覽 71
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  圆产精品久久久久久久久久久新郎 | 色婷婷激情网站 | 青娱乐日韩精品 | 国产精品播放 | 国产精品激情小视频 |