{eval=Array;=+count(Array);}

成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

問(wèn)答專欄Q & A COLUMN

如何實(shí)現(xiàn)tomcat自動(dòng)化部署?

entnerentner 回答0 收藏1
問(wèn)題描述:作為公司運(yùn)維人員,每天tomcat正式環(huán)境和測(cè)試環(huán)境部署上線浪費(fèi)了大量時(shí)間,每次無(wú)非就是備份替換重啟,有時(shí)候開(kāi)發(fā)一個(gè)小問(wèn)題都會(huì)導(dǎo)致自己加班2到3個(gè)小時(shí),等他們解決問(wèn)題上線后才能下班,所以想問(wèn)的是怎么樣可以實(shí)現(xiàn)tomcat的自動(dòng)化部署?比如做一個(gè)web頁(yè)面,每一個(gè)更新都要求開(kāi)發(fā)說(shuō)明,然后上傳更新文件,后臺(tái)根據(jù)文件名查詢自動(dòng)備份替換,然后開(kāi)發(fā)選擇是否進(jìn)行重啟,整個(gè)過(guò)程都有日志記錄。請(qǐng)問(wèn),怎么可以實(shí)現(xiàn)?謝謝。
收藏問(wèn)題

1條回答

thekingisalways

thekingisalways

回答于2022-06-28 12:03

像BAT這樣的大公司,都是有一套自動(dòng)化流水線的,出于公司安全紅線要求,我無(wú)法講的太細(xì),但是我可以提供些思路給題主參考。

工具

工欲善其事,必先利其器,我們先來(lái)說(shuō)需要哪些工具

1 git,用于保存最新要上線的代碼

2 maven,用于打包項(xiàng)目

3 Jenkins,用于觸發(fā)任務(wù)

4 sh腳本或者Python腳本,執(zhí)行Jenkins任務(wù)的腳本

流程

接下來(lái)是實(shí)際的流程。

首先,由開(kāi)發(fā)人員把要上線的代碼上傳到指定代碼庫(kù)。

然后,開(kāi)發(fā)人員觸發(fā)Jenkins任務(wù)。

這個(gè)Jenkins的任務(wù)是自動(dòng)化部署的核心,包含以下步驟

1 開(kāi)始對(duì)代碼進(jìn)行打包

2 把包放到服務(wù)器指定文件夾下

插一句,為了安全起見(jiàn),我們建議的是進(jìn)行熱部署,何為熱部署?

熱部署需要Nginx+多臺(tái)Tomcat的配合。

假設(shè)目前只有一臺(tái)Tomcat連接到了Nginx上,那么可以把要更新的代碼部署在另一臺(tái)Tomcat上,然后啟動(dòng)新的Tomcat,確認(rèn)該服務(wù)啟動(dòng)成功,各能力已經(jīng)啟動(dòng)后,再去修改Nginx的conf文件,把原本給舊Tomcat的請(qǐng)求切到新Tomcat上,這樣就實(shí)現(xiàn)了熱部署。如果不使用這種辦法,而是直接在舊的Tomcat上部署新的war包的話,重啟Tomcat的過(guò)程,就會(huì)有幾秒停服,這對(duì)用戶來(lái)說(shuō)是不可接受的。既然說(shuō)到這里,再介紹兩個(gè)熱部署用到的Nginx的命令。在修改Nginx的conf文件后,要在Nginx的根目錄下執(zhí)行sbin/nginx -t 來(lái)檢查當(dāng)前conf文件配置是否正確,如果是“successful”的,就可以執(zhí)行sbin/nginx -s reload來(lái)進(jìn)行實(shí)現(xiàn)把新的流量切到新的機(jī)器上,即使新的conf文件生效。

好的,關(guān)于熱部署的部分說(shuō)完了,我們?cè)僬f(shuō)回來(lái)。

3 將舊的服務(wù)器根目錄下的war包用cp命令放到一個(gè)專門備份的文件夾下

4 將新的war包同樣用cp命令放到即將啟動(dòng)的Tomcat根目錄下的webapps文件夾下,然后解壓

5 執(zhí)行sh bin/

start.sh

啟動(dòng)新的Tomcat

6 檢查該Tomcat是否啟動(dòng)成功,包括進(jìn)程存在,tail -f

catalina.out

日志一直在打,api能夠調(diào)通

7 修改Nginx的conf文件

8 檢查Nginx配置文件是否successful

9 更新Nginx配置,即sbin/nginx -s reload

10 繼續(xù)觀察新Tomcat是否運(yùn)行正常,如果不正常則立刻切回原Tomcat,本次自動(dòng)更新失敗

11 如果正常,則停止舊的Tomcat。

以上,自動(dòng)化部署完成。

我是蘇蘇思量,來(lái)自BAT的Java開(kāi)發(fā)工程師,每天分享科技類見(jiàn)聞,歡迎關(guān)注我,與我共同進(jìn)步。

評(píng)論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過(guò)該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說(shuō)句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<