<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 太重,Vert.x 真香!

          共 1728字,需瀏覽 4分鐘

           ·

          2022-03-09 17:10

          概述

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

          JAVA系微服務(wù)框架No1-Spring Cloud

          介紹

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

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

          • 至少一臺(tái)“服務(wù)發(fā)現(xiàn) ”的服務(wù)器;

          • 可能有一個(gè)統(tǒng)一的網(wǎng)關(guān)Gateway;

          • 可能需要一個(gè)用于“分布式配置管理”的配置中心;

          • 可能進(jìn)行“服務(wù)追蹤”,知道我的請(qǐng)求從哪里來(lái),到哪里去;

          • 可能需要“集群監(jiān)控”;

          • 項(xiàng)目上線后發(fā)現(xiàn),我們需要好多服務(wù)器,每次在集群中增加服務(wù)器時(shí),都感覺(jué)心疼;

          壓測(cè)30秒

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

          7779668ca06d07b4c64fb09d14cf81f4.webp640?wx_fmt=png

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

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

          bb446c501949dd60b6c61dac348c7c12.webp640?wx_fmt=png

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

          概覽

          0a7de892ecc91f93322d02d9b7d41883.webp640?wx_fmt=png

          總結(jié)

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

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

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

          介紹

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

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

          壓測(cè)30秒

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

          19088a7e5290be636b0858513fc79550.webp640?wx_fmt=png

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

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

          9837436d2b0bf24a8dada0919eb5f46c.webp640?wx_fmt=png

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

          概覽

          a94da82944398c872761eff29a65f839.webp640?wx_fmt=png

          總結(jié)

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

          Vert.x消耗的資源很低,感覺(jué)一個(gè)1核2G的服務(wù)器已經(jīng)能夠部署許多個(gè)Vert.x服務(wù)。除去編碼方面的問(wèn)題,真心符合小項(xiàng)目和小模塊。git市場(chǎng)上已經(jīng)出現(xiàn)了基于Vert.x實(shí)現(xiàn)的開源網(wǎng)關(guān)- VX-API-Gateway幫助文檔

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

          對(duì)多語(yǔ)言支持,很適合小型項(xiàng)目快速上線。

          啟動(dòng)時(shí)間不到1秒:Started Vert.x in 0.274 seconds (JVM running for 0.274)

          JAVA系其他微服務(wù)框架

          SparkJava

          • jar比較小,大約10M

          • 占內(nèi)存小,大約30~60MB;

          • 性能還可以,與SprintBoot相仿;

          Micronaut

          • Grails團(tuán)隊(duì)新寵;

          • 可以用 Java、Groovy 和 Kotlin 編寫的基于微服務(wù)的應(yīng)用程序;

          • 相比SprintBoot已經(jīng)比較全面;

          • 性能較優(yōu),編碼方式與SprintBoot比較類似;

          • 啟動(dòng)時(shí)間和內(nèi)存消耗方面比其他框架更高效;

          • 多語(yǔ)言;

          • 依賴注入;

          • 內(nèi)置多種云本地功能;

          • 很新,剛發(fā)布1.0.0

          Javalin

          • 上手極為容易;

          • 靈活,可以兼容同步和異步兩種編程思路;

          • JAR小,4~5M;

          • 多語(yǔ)言;

          • 有KOA的影子;

          • 只有大約2000行源代碼,源代碼足夠簡(jiǎn)單,可以理解和修復(fù);

          • 符合當(dāng)今趨勢(shì);

          • 多語(yǔ)言;

          • 嵌入式服務(wù)器Jetty;

          Quarkus

          • 啟動(dòng)快;

          • JAR小,大約10M;

          • 文檔很少;

          如果本文對(duì)你有幫助的話,請(qǐng)不要吝嗇你的贊,謝謝!

          31076513cd8b3cbc24ffa6802a9dc186.webp
          瀏覽 67
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  大香蕉网伊人 | 日本AA片免费 | 日本AⅤ在线 | 国产激情乱伦 | 欧美一区二不卡视频 |