天天看點

Tomcat單機多執行個體配置

當一個程序的線程超過500個的話,那麼這個程序的運作效率會變得很低。因為一個程序産生過多的線程,cpu資源會浪費線上程間切換過程當中。但當伺服器配置很高的情況下,如:32g記憶體,16核的cpu。這樣一台高配的機器上隻裝一個tomcat執行個體,會有點浪費。其實我們可以根據伺服器的硬體配置,配置多個tomcat執行個體,充分利用硬體的資源。你第一時間可能會想到,直接下載下傳多份tomcat安裝包,直接解壓,改下端口跑起來不就可以了? 這樣也是可以的,但不好維護。假設你在一台機器上安裝了5個tomcat執行個體,日後要更新tomcat時,你需要将新版本的tomcat複制并覆寫掉舊的5個tomcat安裝程式和配置,是以還是挺麻煩的。下面介紹多個tomcat執行個體共享同一個安裝包的配置方法。

作業系統:centos7 64位 mini版 

jdk:1.8,安裝目錄:/opt/jdk1.8 

tomcat:tomcat8.0.35,安裝目錄:/opt/apache-tomcat-8.0.35 

配置3個tomcat執行個體元件一個叢集: 

/opt/tomcat_instance/tomcat1 

/opt/tomcat_instance/tomcat2 

/opt/tomcat_instance/tomcat3

啟動和停止腳本放到tomcat執行個體的bin目錄下

将以下腳本拷貝到startup.sh檔案中,注意修改<code>catalina_base</code>指向的tomcat執行個體路徑:

拷貝以下腳本到shutdown.sh檔案中:

上面是裁剪過後的server.xml,分别修改以上三個端口(server、http、ajp),不要和其它執行個體的端口或系統已經占用的端口發生沖突。

所有執行個體的app預設都部署到/opt/deploy/webapps目錄下,注意修改server.xml中host節點的appbase屬性的值。

伺服器啟動之後,會分别在相應的執行個體目錄下生成logs、temp、work和webapps目錄。另外也可以在執行個體目錄下建立lib目錄,用于存放app的jar。現在來看執行個體的安裝目錄,就和tomcat的安裝包解壓後的目錄結構一樣了,但所有執行個體共享同一套tomcat安裝程式的bin和lib。後面如果需要更新tomcat或修改tomcat腳本的相關配置,隻需要更新這一套程式就行,也友善了日後的維護。tomcat1執行個體的目錄結構如下: