1. 程式人生 > >聰哥哥有話說之聊聊Tomcat的應用部署

聰哥哥有話說之聊聊Tomcat的應用部署

Tomcat的部署方式有很多種,以下列舉:

第一種,是本地打包為war,直接通過winscp上傳到遠端伺服器目錄上。

第二種,通過git clone的方式打包war部署。

第三種,需要設定tomcat的許可權,直接通過輸入IP+埠,進入tomcat首頁,輸入對應的使用者名稱和密碼,直接通過檔案上傳的方式完成部署。

綜合三種,本質就是通過war來實現的。哪怕是非maven專案,動態web專案本質上也是一樣的,也可以打成war包,當然不打成war也行。

回到一個問題上面來,有人說一個tomcat部署一個web應用,浪費資源了,還有人說,一個tomcat部署多個web應用太佔資源了。

下面我參考一個朋友的連結給出對應的方案,大家自行根據需求而定。

參考文章連結如:https://mp.weixin.qq.com/s/rEBqi0rSeolBYDHUBAMPgQ

多個web應用部署到一個Tomcat上的優劣?

優勢 :

  • 安裝管理、監控都方便,只需要安裝一個 Tomcat,所有的操作都指向同一個例項即可。

劣勢:

  • 多個應用共用 Tomcat 的記憶體,容易互相影響。如果有一個應用佔用堆太多,頻繁的 GC 也會使其他應用跟著暫停。

 

 

每個Tomcat部署一個web應用的優劣?

優勢 :

  • 多個應用之間 Tomcat 的記憶體互相隔離,互相之間無影響。一個應用crash,頻繁 GC,都隻影響其自己,影響面縮小。

劣勢:

  • 相比一個例項,安裝管理、監控都較繁瑣一些。可以通過安裝一個例項,設定不同的CATALINA_HOME來簡化一些操作。

其實上述的優劣對比,綜合起來,就是開發與運維從各自的角度分析得出的。

歸納如下:

運維認為一個 Tomcat 部署多個應用,原因如下:

  • 省記憶體 (每個 Tomcat 都會有記憶體的 footprint,即使沒有應用部署執行)

  • 省去額外的檔案系統 (logs, tomcat installation, temp directory)

  • 省去 nagios 監控配置

  • 省去不少獨立的埠 (security considerations)

  • 省去每個都打安全補丁

開發人員認為應該一個 Tomcat裡只部署一個應用,理由如下:

  • 多個應用部署在一起,啟動時間太長

  • 多個應用部署在一起,一個出了問題,會影響到其他的應用 (OOM, 執行緒數打滿 等等)

  • 如果你需要在線上進行應用heap, 執行緒的dump, cpu使用等診斷分析,獨立部署則不會影響到其他應用

 

問:聰哥哥怎麼看?

答:視情況而定,根據公司在開發和運維方面投入的資源而定,如果是運維方面,投入比重比較小,建議還是儘可能的最大程度挖掘伺服器(也就是能用空間,儘可能充分利用,要有寧可錯殺一萬,絕不放掉一個的勇氣和智慧)。當然了,就穩定性的角度看,還是能一個tomcat對應一個web應用也是不錯的選擇。當然了,還是那句話,一切從實際出發,實際出現什麼樣的情況,就採取什麼樣的措施。