1. 程式人生 > >從零開始深入學習Tomcat

從零開始深入學習Tomcat

1:Tomcat工作原理

2:Tomcat工作模式

(1):獨立的Servlet容器(預設)(2)程序內的Servlet容器(基於JNI)(3)程序外的Servlet容器(基於IPC)

  JNI:Java Native Interface,本地通訊介面,通過這個介面,Java 程式可以和其他語言編寫的本地程式進行通訊。

  IPC:Inter Process Communication,程序間通訊 

  Tomcat既可以作為獨立的容器,又可以和其他Web伺服器整合(例如IIS,Apache)作為程序內、程序間Servlet容器

  Servlet容器分為:

  1.Web伺服器外掛:在其他的WEB伺服器內部地址空間開啟一個JVM,Java容器在這個開闢的JVM上執行Servlet

  2.Java容器

3:Tomcat組織結構

最基本的配置:

<Server>頂層類元素,可包含多個 Service
  <Service>頂層類元素,可包含一個 Engine 和多個 Connector,本身並不能處理客戶請求
   <Connector/>聯結器元素,代表通訊介面,本身並不能處理客戶請求
   <Engine>容器元素,為 Service 處理客戶請求,可包含多個 Host
       <Host>容器元素,為 Host 處理客戶請求,可包含多個 Context
       <Context/>容器元素,為 Web 應用處理客戶請求
     </Host>
   </Engine>
</Service></Server>

Connector 通過這個客戶求,其他容器組件,後再服務客戶。 

容器類元素
上面介紹的 3 個元件:server,service,connector本身並不能處理客戶請求,也不能生成響應。在 Tomcat 中只有 3 個元件是可以處理客戶請求並生成響應的,這 3 個元件分別是 Engine、Host 和 Context。這 3 個元件分別代表了不同的服務範圍,通過巢狀關係可以知道 3 個元件的範圍有如下的關 系:Engine>Host>Context。
Engine 元件下可以包含多個 Host 元件,它為特定的 Service 元件處理所有客戶請求。
一個 Host 元件代表一個虛擬主機,一個虛擬主機中可以包含多個 Web 應用(Context 元件)。

Context 元件代表一個 Web 應用。

WEB伺服器種類:

Java Web 服務按照依次有:JSWDKJServResinTomcatJRunJBossWebLogicWebSphere JSWDKJServResinTomcatJRunJBoss 完全免費件。 

4:JVM效能設定

堆大小
堆大小也可以提高效能,JDK1.3.1 允許堆大小大於 2GB,預設堆大小為 64MB,但是 大部分的伺服器增加堆大小後效能會提高,設定引數為-Xms256m -Xmx256m,Xms 代表最 大大小,Xmx 代表預設啟動大小,m 代表 MB,g 代表 GB。
垃圾回收

如果堆設定過大,也許伺服器會在無端的情況下奇怪終止。這是因為垃圾回收器(GC, garbage collector)僅僅在記憶體被耗盡後在整個系統中啟動垃圾回收任務,也意味著需要花 費一定的時間來檢查 2G 以上的記憶體。如果堆過大,掃描記憶體的時間過長,就會導致系統 終止。不過有辦法可以解決,新增命令引數-Xincgc,使垃圾回收器執行在 incremental 模式, 它會經常執行檢查小數量的記憶體。還有一種解決辦法,設定引數-Xms256m -Xmx256m -XX:NewSize=128m -XX:MaxNewSize=128m,NewSize 是新建物件的大小,MaxNewSize 是新建堆執行增長的最大值,它決定了何時將新的物件置為舊的物件。

5:Tomcat目錄

Tomcat 根目Tomcat $CATALINA_HOME ,即安裝目錄。

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false">

<Context path="/aa" reloadable="true"docBase="D:\bb\aa" workDir="webapps/axis/work"/> 

 </Host>

其中屬性 path 代表網路訪問的上下文路 徑,reloadable 表示可以在執行時在 classes 與 lib 資料夾下自動載入類包,docBase 屬性表 示應用程式的路徑,如 docBase="D:\bb\aa",workDir 表示快取檔案的放置地點,可以方 便跨平臺移植時不用重編譯。

service.bat Tomcat 服務

service.bat Tomcat 安裝bin 檔案,用理檔案來安裝、刪除 Tomcat服務比較便:下載時要下載

Tomcat5 服務:service install;
刪除 Tomcat5 服務:service remove;
MyTomcatService 服務:service install MyTomcatService;刪除名MyTomcatService 服務:service remove MyTomcatService。