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

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

如何實現tomcat自動化部署?

entnerentner 回答0 收藏1
問題描述:作為公司運維人員,每天tomcat正式環境和測試環境部署上線浪費了大量時間,每次無非就是備份替換重啟,有時候開發一個小問題都會導致自己加班2到3個小時,等他們解決問題上線后才能下班,所以想問的是怎么樣可以實現tomcat的自動化部署?比如做一個web頁面,每一個更新都要求開發說明,然后上傳更新文件,后臺根據文件名查詢自動備份替換,然后開發選擇是否進行重啟,整個過程都有日志記錄。請問,怎么可以實現?謝謝。
收藏問題

1條回答

thekingisalways

thekingisalways

回答于2022-06-28 12:03

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

工具

工欲善其事,必先利其器,我們先來說需要哪些工具

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

2 maven,用于打包項目

3 Jenkins,用于觸發任務

4 sh腳本或者Python腳本,執行Jenkins任務的腳本

流程

接下來是實際的流程。

首先,由開發人員把要上線的代碼上傳到指定代碼庫。

然后,開發人員觸發Jenkins任務。

這個Jenkins的任務是自動化部署的核心,包含以下步驟

1 開始對代碼進行打包

2 把包放到服務器指定文件夾下

插一句,為了安全起見,我們建議的是進行熱部署,何為熱部署?

熱部署需要Nginx+多臺Tomcat的配合。

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

好的,關于熱部署的部分說完了,我們再說回來。

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

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

5 執行sh bin/

start.sh

啟動新的Tomcat

6 檢查該Tomcat是否啟動成功,包括進程存在,tail -f

catalina.out

日志一直在打,api能夠調通

7 修改Nginx的conf文件

8 檢查Nginx配置文件是否successful

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

10 繼續觀察新Tomcat是否運行正常,如果不正常則立刻切回原Tomcat,本次自動更新失敗

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

以上,自動化部署完成。

我是蘇蘇思量,來自BAT的Java開發工程師,每天分享科技類見聞,歡迎關注我,與我共同進步。

評論0 贊同0
  •  加載中...

相關問題

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<