前言

Spring Boot已成為當(dāng)今最流行的Java后端開發(fā)框架,典型的應(yīng)用方式是在云上購買一臺虛擬機(jī),每天24小時在上面運(yùn)行Java程序,在這種情況下,用戶必須維護(hù)自己的虛擬機(jī)環(huán)境,而且按照包月包年等方式進(jìn)行付費(fèi)。
華為云FunctionGraph(函數(shù)工作流服務(wù))有著零運(yùn)維、低成本計(jì)算的特點(diǎn),F(xiàn)unctionGraph按需運(yùn)行代碼,無需配置和管理主機(jī),您僅需為代碼執(zhí)行的每100ms和次數(shù)付費(fèi),如果代碼沒有運(yùn)行的話,不會產(chǎn)生任何費(fèi)用,而且每個月還有較多的免費(fèi)額度。
FunctionGraph有明顯的成本和維護(hù)優(yōu)勢,但是怎樣才能把標(biāo)準(zhǔn)的Spring Boot應(yīng)用程序當(dāng)做函數(shù)在FunctionGraph上運(yùn)行起來呢?現(xiàn)在以我本地的一個SpringBoot工程(鏈接https://functionstage-examples.obs.cn-north-1.myhwclouds.com/ServerlessSpringBootDemo.zip)為例展示快速遷移到華為云FunctionGraph的流程。
準(zhǔn)備工作
下載ServerlessSpringBoot2-1.0.0.jar(鏈接https://functionstage-examples.obs.cn-north-1.myhwclouds.com/ServerlessSpringBoot2-1.0.0.jar)。
遷移流程
01.制作函數(shù)zip包
按照上面的動圖添加fgs.properties配置文件,增加兩個配置項(xiàng)fgs.component-scan和fgs.mapper-scan,然后導(dǎo)包。
所得的ServerlessSpringBootDemo.zip就是最終的函數(shù)代碼包。
02.創(chuàng)建函數(shù)
在華為云入口找到FunctionGraph服務(wù),進(jìn)去后選擇創(chuàng)建函數(shù),函數(shù)名稱建議設(shè)置為Controller中的根路徑,例如本例的webtest,選擇語言為Java8,另外設(shè)置函數(shù)執(zhí)行入口為com.huawei.fgs.ext.handler.Main.handler,選擇zip包方式上傳代碼(或者可以將代碼先傳入OBS桶,使用OBS上傳方式創(chuàng)建),創(chuàng)建成功。
03.創(chuàng)建APIG觸發(fā)器
函數(shù)創(chuàng)建完成后修改內(nèi)存為1024,修改超時時間為30(首次啟動時間較長)并保存。接下來切換到觸發(fā)器選項(xiàng)卡,點(diǎn)擊創(chuàng)建觸發(fā)器,選擇APIG,將安全認(rèn)證改成NONE,后端超時設(shè)置為30000,和函數(shù)超時保持一致,點(diǎn)擊確定完成創(chuàng)建。
檢驗(yàn)結(jié)果
直接在瀏覽器中訪問APIG生成的URL,因?yàn)閐emo中的Controller中并沒有匹配/webtest路徑的RequestMapping,因此一開始提示找不到路徑,稍加修改后可以看到效果:
注意事項(xiàng)
1、使用SpringBoot的AOP特性時,請不要將切面定義到Controller層,否則會導(dǎo)致無法使用;
2、目前Controller都會視作RestController,所有的接口均會以ResponseBody形式返回,暫時不支持返回html頁面;
3、在application.properties中去掉server.port配置,加入spring.main.web-environment=false配置項(xiàng)可以小幅提升首次啟動速度;
4、如果代碼需要經(jīng)常改動,請將所有的依賴包打包成一個zip,上傳到OBS,創(chuàng)建函數(shù)時填入依賴代碼包的地址,后續(xù)更新代碼時,只需要上傳一個小的jar包即可;
5、如果業(yè)務(wù)代碼中使用了filter,需要對代碼進(jìn)行修改,具體方式后續(xù)會提供(本demo中有簡單使用例子,依賴FunctionGraph的Java SDK(鏈接https://functionstage-sdk.obs.myhwclouds.com/java-sdk/fss-java-sdk-1.1.0.zip)中的Runtime-1.1.0.jar和ServerlessSpringBoot2-1.0.0.jar);
6、如果需要使用本demo的代碼,請先把a(bǔ)pplication.properties中的mysql信息改為自己的公網(wǎng)訪問配置:
另外在數(shù)據(jù)庫中創(chuàng)建users表和books表。
users表結(jié)構(gòu)如下:
books表結(jié)構(gòu)如下:
總結(jié)
綜上所述,整個遷移過程非常簡單,用戶無需改造自己的業(yè)務(wù)代碼,只需在資源目錄下新增fgs.properties文件即可,導(dǎo)包過程和常規(guī)情況稍有不同,按照上面的步驟也可以在數(shù)秒內(nèi)完成,最后創(chuàng)建好函數(shù)和觸發(fā)器之后,整個流程就完成了。關(guān)于API網(wǎng)關(guān)的詳情,可以點(diǎn)擊這里體驗(yàn)哦~
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
標(biāo)題名稱:三分鐘遷移Springboot工程到Serverless-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://chinadenli.net/article40/edsho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站策劃、動態(tài)網(wǎng)站、外貿(mào)建站、微信小程序、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容