女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Spring官方再出手,這個(gè)工具殺瘋了!

CodeSheep ? 來(lái)源:CodeSheep ? 2023-08-01 16:25 ? 次閱讀

大家好,今天這篇文章是一篇技術(shù)實(shí)戰(zhàn)文章。

在文章開(kāi)始之前,這里先拋一個(gè)問(wèn)題:

大家在自己電腦上啟動(dòng)一個(gè) Spring Boot 項(xiàng)目大概需要花費(fèi)多久?

根據(jù)項(xiàng)目大小和機(jī)器環(huán)境,花費(fèi)幾秒到幾十秒的應(yīng)該都有。

而之前 Spring 官方推出了一項(xiàng)技術(shù)說(shuō)是可以將項(xiàng)目的啟動(dòng)時(shí)間縮短到 79 毫秒

79 毫秒大概是個(gè)什么概念?就是你還沒(méi)反應(yīng)過(guò)來(lái)項(xiàng)目已經(jīng)啟動(dòng)好了。

這項(xiàng)技術(shù)被 Spring 官方命名為Spring Native,翻譯成中文叫Spring 云原生,應(yīng)該有少部分人聽(tīng)說(shuō)過(guò)這個(gè)概念,我先帶大家入門(mén)掃盲。

它是誰(shuí)?

Spring Native 是 Spring 推出微服務(wù)體系 Spring Cloud 之后的又一大舉動(dòng),從名字可以猜出,Spring Native是一門(mén)面向云原生的技術(shù)。如果你還對(duì)這個(gè)概念不太理解,可以多看一點(diǎn)東西,比如 Oracle 的 GraalVM等。Spring Native 為使用 GraalVM 原生鏡像編譯器編譯 Spring 應(yīng)用為本地可執(zhí)行文件提供支持。與 Java 虛擬機(jī)相比,原生鏡像可以在許多場(chǎng)景下降低工作負(fù)載,包括微服務(wù),函數(shù)式服務(wù),非常適合容器和 Kubernetes。使用原生鏡像有明顯優(yōu)勢(shì),如快速啟動(dòng),提高峰值性能以及降低內(nèi)存消耗。

它有多強(qiáng)?

上面提到了原生鏡像,簡(jiǎn)單來(lái)說(shuō)原生鏡像是一種將Java代碼提前編譯為獨(dú)立可執(zhí)行文件(稱(chēng)為本機(jī)映像)的技術(shù)。可執(zhí)行文件包括應(yīng)用程序類(lèi),以及其依賴(lài)項(xiàng)的類(lèi),運(yùn)行時(shí)庫(kù)類(lèi)以及JDK中的靜態(tài)鏈接本機(jī)代碼。

小芝士,GraalVM官網(wǎng)對(duì)原生鏡像的解釋?zhuān)?/p>

原生鏡像提供了一種構(gòu)建和運(yùn)行具有不同于常規(guī)JVM部署特性的Spring Boot應(yīng)用程序的方法:

  • 輸出是一個(gè)本機(jī)可執(zhí)行文件,其中包含您的應(yīng)用程序以及JDK的子集以及運(yùn)行它所需的依賴(lài)項(xiàng)。
  • 在實(shí)踐中,可執(zhí)行文件可能會(huì)以高度優(yōu)化的容器映像(FROM scratch支持Docker鏡像)的形式提供,并且減少了表面攻擊,非常適合Kubernetes。
  • 啟動(dòng)時(shí)間幾乎是即時(shí)的,并且可以立即獲得峰值性能,從而支持從零縮放(無(wú)服務(wù)器)應(yīng)用程序,包括常規(guī)的Spring Boot Web應(yīng)用程序。
  • 減少了內(nèi)存消耗,這非常適合拆分為多個(gè)微服務(wù)的系統(tǒng)。
這些原生的 Spring 應(yīng)用可以作為一個(gè)獨(dú)立的可執(zhí)行文件(原生鏡像)進(jìn)行部署(不需要安裝 JVM),性能非常強(qiáng):
  • 幾乎瞬時(shí)的啟動(dòng)(一般會(huì)小于 100 毫秒)
  • 瞬時(shí)的峰值性能以及更低的資源消耗
當(dāng)然牛逼的背后肯定要稍微付出一點(diǎn)代價(jià):比 JVM 更長(zhǎng)的構(gòu)建時(shí)間和更少的運(yùn)行時(shí)優(yōu)化。

上 手

既然 Spring Native 性能這么強(qiáng)悍,是不是得動(dòng)手試一試了。 下面我會(huì)拿傳統(tǒng)的 Spring Boot 項(xiàng)目和基于 Spring Native的項(xiàng)目進(jìn)行比較演示,讓大家來(lái)直觀地感受一下。

環(huán)境信息

  • 電腦:MacBook Pro 13寸 2017

  • 操作系統(tǒng):macOS Big Sur 11.2

  • IDE:IntelliJ IDEA 2021.2.2 (Ultimate Edition)

  • Open JDK:11.0.12

  • Maven:3.6.3

  • Docker Desktop:4.0.1

初始化項(xiàng)目

進(jìn)入 Spring 初始化頁(yè)面: https://start.spring.io/第一步:填寫(xiě)必要項(xiàng)目信息

這里我選擇 Maven 構(gòu)建,SpringBoot 版本這里選擇的是2.5.8,jdk 版本選擇 11

257632ce-3007-11ee-9e74-dac502259ad0.png

第二步:添加必要依賴(lài) 添加兩個(gè)依賴(lài):
  • SpringNative
  • Spring Web

25ab1cb4-3007-11ee-9e74-dac502259ad0.png

25de3e14-3007-11ee-9e74-dac502259ad0.png

第三步:生成項(xiàng)目骨架代碼

點(diǎn)擊下載可以獲得一個(gè)壓縮包

25e89aa8-3007-11ee-9e74-dac502259ad0.png

注意:以上步驟也可以直接在 IDEA 里通過(guò) start.spring.io進(jìn)行新建,這里不再贅述。

運(yùn)行項(xiàng)目

導(dǎo)入測(cè)試項(xiàng)目后可以在根目錄下面看到一個(gè)幫助文檔:

25fa40a0-3007-11ee-9e74-dac502259ad0.png

通過(guò)閱讀幫助文檔得知有兩種方式啟動(dòng) Spring Native 項(xiàng)目:

  • 第一種:借助 Maven 插件將項(xiàng)目構(gòu)建為 Docker 鏡像,然后啟動(dòng)鏡像;

  • 第二種:借助本地構(gòu)建工具將項(xiàng)目打包為一個(gè)可執(zhí)行的文件,然后直接啟動(dòng)即可。

我電腦上已經(jīng)裝了 Docker 工具,這里我演示一下第一種方式。第一步:生成Docker 鏡像文件
$./mvnwspring-boot:build-image
這個(gè)過(guò)程可能有點(diǎn)漫長(zhǎng),也可能會(huì)失敗,大家做好心理準(zhǔn)備。第二步:?jiǎn)?dòng)鏡像文件
$dockerrun--rmspring-native-demo:0.0.1-SNAPSHOT
執(zhí)行完命令之后,項(xiàng)目瞬間就跑起來(lái)了。

性能測(cè)試對(duì)比

場(chǎng)景一:使用 Spring Native

官方宣稱(chēng) 79 毫秒就可以啟動(dòng),原諒我的電腦太渣了,最好的一次花費(fèi)了 143 毫秒,也就是一瞬間的事情,確實(shí)牛叉。

2613e8f2-3007-11ee-9e74-dac502259ad0.png

場(chǎng)景二:普通啟動(dòng)

沒(méi)有對(duì)比就沒(méi)有傷害,普通啟動(dòng)花費(fèi)了2.091 秒

263c2eac-3007-11ee-9e74-dac502259ad0.png

小結(jié)

在我的破電腦上測(cè)試,Spring Native 的啟動(dòng)速度大致是普通啟動(dòng)的 15 倍。FAQ 在測(cè)試過(guò)程中踩了不少坑,這里做一個(gè)匯總。問(wèn)題一:Maven 依賴(lài)下載失敗,網(wǎng)絡(luò)差 可以配置 Maven 鏡像倉(cāng)庫(kù)
<mirror>
<id>aliyunmavenid>
<mirrorOf>*mirrorOf>
<name>centralname>
<url>https://maven.aliyun.com/repository/centralurl>
mirror>
問(wèn)題二:鏡像構(gòu)建失敗,提示內(nèi)存不足

266a58f4-3007-11ee-9e74-dac502259ad0.jpg

解決方法:增大 Docker 的內(nèi)存配置

2673e13a-3007-11ee-9e74-dac502259ad0.png

好了,以上就是今天的內(nèi)容分享了,感謝大家的收看,我們下篇見(jiàn)。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1654

    瀏覽量

    49875
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    340

    瀏覽量

    14876
  • 鏡像
    +關(guān)注

    關(guān)注

    0

    文章

    178

    瀏覽量

    11113

原文標(biāo)題:Spring官方再出手,這個(gè)工具殺瘋了!

文章出處:【微信號(hào):CodeSheep,微信公眾號(hào):CodeSheep】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    java spring教程

    java spring教程理解Spring 實(shí)現(xiàn)原理掌握Spring IOC,AOP掌握Spring的基礎(chǔ)配置和用法熟練使用SSH開(kāi)發(fā)項(xiàng)目Sprin
    發(fā)表于 09-11 11:09

    什么是java spring

    什么是java springSpring是一個(gè)開(kāi)源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成
    發(fā)表于 09-11 11:16

    EDAS再升級(jí)!全面支持Spring Cloud應(yīng)用

    ,框架的硬件資源占用卻更少,在CPU和Load占用方面少于Spring Cloud約60%。EDAS不僅在阿里內(nèi)部應(yīng)用廣泛,在各個(gè)領(lǐng)域的領(lǐng)航企業(yè)中,也成了企業(yè)IT架構(gòu)轉(zhuǎn)型過(guò)程中的重要工具。 通過(guò)EDAS
    發(fā)表于 02-02 15:20

    Spring工作原理

    核心就是AOP這個(gè)就是面向切面編程,可以為某一類(lèi)對(duì)象 進(jìn)行監(jiān)督和控制(也就是在調(diào)用這類(lèi)對(duì)象的具體方法的前后去調(diào)用你指定的 模塊)從而達(dá)到對(duì)一個(gè)模塊擴(kuò)充的功能。這些都是通過(guò)配置類(lèi)達(dá)到的。Spring目的
    發(fā)表于 07-10 07:41

    Spring Boot嵌入式Web容器原理是什么

    Spring Boot嵌入式Web容器原理Spring Boot的目標(biāo)是構(gòu)建“非常容易創(chuàng)建、獨(dú)立、產(chǎn)品級(jí)別的基于Spring的應(yīng)用”。這些應(yīng)用是“立即可運(yùn)行的”。在這個(gè)過(guò)程中,完全沒(méi)有
    發(fā)表于 12-16 07:57

    比特幣“瘋了,48小時(shí)53億資金灰飛煙滅,7萬(wàn)人爆倉(cāng)!

    比特幣“瘋了,48小時(shí)53億資金灰飛煙滅,7萬(wàn)人爆倉(cāng)!礦機(jī)也瘋狂,店員:2萬(wàn)臺(tái)也能賣(mài)出去,網(wǎng)友:洗錢(qián)神器......,比特幣,礦機(jī),交易
    發(fā)表于 02-20 14:12 ?1481次閱讀

    Spring認(rèn)證_什么是Spring GraphQL

    Spring GraphQL 為構(gòu)建在 GraphQL Java 上的 Spring 應(yīng)用程序提供支持。兩個(gè)團(tuán)隊(duì)之間的聯(lián)合聯(lián)合。我們的共同理念是少固執(zhí)己見(jiàn),更專(zhuān)注于全面和廣泛的支持。 Spring
    的頭像 發(fā)表于 08-06 14:30 ?917次閱讀
    <b class='flag-5'>Spring</b>認(rèn)證_什么是<b class='flag-5'>Spring</b> GraphQL

    Spring認(rèn)證」什么是Spring GraphQL?

    這個(gè)項(xiàng)目建立在 Boot 2.x 上,但它應(yīng)該與最新的 Boot2.4.x5 相關(guān)。 要?jiǎng)?chuàng)建項(xiàng)目,請(qǐng)轉(zhuǎn)到start.spring.io并為要使用的GraphQL傳輸選擇啟動(dòng)器: 啟動(dòng)機(jī) 運(yùn)輸 執(zhí)行
    的頭像 發(fā)表于 08-10 14:08 ?978次閱讀
    「<b class='flag-5'>Spring</b>認(rèn)證」什么是<b class='flag-5'>Spring</b> GraphQL?

    spring認(rèn)證證書(shū)有用嗎?

    Spring認(rèn)證(全稱(chēng):Spring Professional認(rèn)證)是Spring官方推出的認(rèn)證體系,旨在測(cè)試和驗(yàn)證學(xué)生對(duì) Spring
    的頭像 發(fā)表于 07-12 15:59 ?2452次閱讀

    為什么使用spring-authorization-server?

    官方原因:原先使用Spring Security OAuth,而該項(xiàng)目已經(jīng)逐漸被淘汰,雖然網(wǎng)上還是有不少該方案,但秉著技術(shù)要隨時(shí)代更新,從而使用spring-authorization-server
    的頭像 發(fā)表于 01-09 15:27 ?2541次閱讀

    基于spring的SPI擴(kuò)展機(jī)制是如何實(shí)現(xiàn)的?

    基本上,你一說(shuō)是基于 spring 的 SPI 擴(kuò)展機(jī)制,再把spring.factories文件和EnableAutoConfiguration提一下,那么這個(gè)問(wèn)題就答的八九不離十了。
    的頭像 發(fā)表于 03-07 09:17 ?1305次閱讀

    怎樣使用Kiuwan保護(hù)Spring Boot應(yīng)用程序呢?

    Spring Boot 提供了快速輕松地構(gòu)建基于Spring 的應(yīng)用程序所需的工具、功能和依賴(lài)項(xiàng)。
    的頭像 發(fā)表于 03-16 09:10 ?1004次閱讀

    Spring干掉原生JVM?

    這意味著,除了 Spring 誕生以來(lái)就支持的 Java 虛擬機(jī),官方添加了使用 GraalVM 將 Spring 應(yīng)用編譯成原生鏡像的 beta 支持,這樣的話(huà),就能提供一種新的方式來(lái)部署
    的頭像 發(fā)表于 05-05 09:25 ?717次閱讀
    <b class='flag-5'>Spring</b>干掉原生JVM?

    Spring Boot Actuator快速入門(mén)

    一下 Spring Boot Actuator ,學(xué)習(xí)如何在 Spring Boot 2.x 中使用、配置和擴(kuò)展這個(gè)監(jiān)控工具Spring
    的頭像 發(fā)表于 10-09 17:11 ?820次閱讀

    Spring Cloud Gateway網(wǎng)關(guān)框架

    Spring Cloud Gateway網(wǎng)關(guān)框架 本軟件微服務(wù)架構(gòu)中采用Spring Cloud Gateway網(wǎng)關(guān)控制框架,Spring Cloud Gateway是Spring C
    的頭像 發(fā)表于 08-22 09:58 ?673次閱讀
    <b class='flag-5'>Spring</b> Cloud Gateway網(wǎng)關(guān)框架