對 tomcat 來說,每一個進來的請求都需要一個線程,直到該請求結束。
如果同時進來的請求多於當前可用的請求處理線程數,額外的線程就會被創建,
直到到達配置的最大線程數(maxThreads屬性值)。
如果仍就同時接收到更多請求,這些來不及處理的請求就會在Connector創建的ServerSocket中堆積起來,
直到到達最大的配置值(acceptCount屬性值)。至此,任何再來的請求將會收到connection refused錯誤,直到有可用的資源來處理它們。
具體配置相關信息參考: http://www.cnblogs.com/shenpengyan/articles/5938749.html 中的Connector元素屬性配置。
tomcat 6 的 Connector 配置如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="800"
acceptCount="1000"/>
其中最後兩個參數意義如下:
maxThreads:tomcat 起動後的最大線程數,即同時處理的請求任務個數
acceptCount:當 tomcat 起動後的運行線程數達到最大時,接受排隊的請求個數