一 Tomcat是如何工做的?tomcat
1. http協議知識點多線程
2. http協議原理架構
Connect:接收客戶端發送的請求,針對不一樣的協議會有不一樣的Connect,一個Service會同時app
存在多個Connect。線程
二 Tomat的的架構server
1. Server組件,對應tomcat的一個實例,一般一個JVM只能包含一個Tomcatxml
實例,它對應server.xml中的<server>標籤對象
2. service,通常一個tomcat下只有一個service,老師說不多見配多個狀況。blog
(a)connector:用於處理鏈接相關的事情,並提供Socket與Request和Response原理
相關的轉化。
(i)Connertor是由Protocol、Mapper、Copyote Adaptor組成
上圖說明:
-- protocol:協議(http、ajp等)
endpoint:用於接接收數據的模塊,由Acceptor和Executer組成
Acceptor、Executer、Processor之間的關係
Acceptor、Executer、Processor之間是協同工做的,Acceptor
是負責接收數據,通常由單線程或是多線程(等於CPU的核數);
它將數據提交到Executor;Executor是處理任務的線程池;
Processor是處理任務的對象
Executor是處理數據的線程池線程接收完以後會提交到Executor
(線程池)。Acceptor是單線程的或是線程數等於CPU的核數。
(b)Engine:真正處理請求的模塊,connector解析過的報文交給Engine去處理。