Tomcat的架構
一個tomcat實例或者服務是tomcat容器分層架構中最高級別的組件。一個虛擬機中只允許存在一個tomcat實例。這樣做確保了其他運行在同一個物理機上tomcat服務器裏的應用程序的安全,以防tomcat或者虛擬機宕機。
當然,你可以在物理機中運行多個實例,但是你必須把java進程分別運行於各個不同的網絡端口。
Tomcat實例由一組應用程序容器組成,他們具有良好的組織分層。分層中的核心組件是Catalina servlet engine. Catalina實際上是一個實現了Java Servlet API的java servlet 容器。
下面這個XML表示的是tomcat容器之間的關係。
<Server> <Service> <Connector /> <Engine> <Host> <Context> </Context> </Host> </Engine> </Service> </Server> |
一個Server由1至多個Service組成,每個service又由1-n個connector及單個Engine組成,Engine則由Host組成,Host最終配置了web目錄。如下圖
也就是說,一個tomcat實例可以被分割成一組容器,包括Server, Service, Connector, engine ,host, Context.默認情況下,這些內容被配置在tomcat/conf/server.xml中。Connector用於處理客戶端request/response請求。Engine接收所有來自父Service裏的Connector的request。