tomcat線程池配置協議Http11NioProtocol解析

以下是tomcat的配置文件server.xml中配置Http11NioProtocol協議的示例apache

<Connector connectionTimeout="20000" maxThreads="1000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>

這裏配置的Http11NioProtocol協議的connector是一個Non-blocking NIO connector,即非阻塞鏈接池。tomcat

其中.net

maxThreads:tomcat可用於請求處理的最大線程數
minSpareThreads:tomcat初始線程數,即最小空閒線程數
maxSpareThreads:tomcat最大空閒線程數,超過的會被關閉線程

在tomcat中,默認的http鏈接池是阻塞鏈接池,按照的是每一個鏈接一個線程的模式運行。這樣有多少個不一樣的concurrent的用戶,就要佔用多少鏈接,很是消耗資源。日誌

和默認的http鏈接池相反的就是使用Http11NioProtocol協議的Non-blocking NIO connector,這個線程池會保持必定數量的線程,當有新的http鏈接時,由線程池分配一個線程來工做,這種模式最大限度的利用了線程的資源。server

如何判斷Http11NioProtocol協議的線程池生效了?xml

當tomcat啓動時,會有以下所示的控制檯日誌出現資源

Mar 31, 2017 5:50:35 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Mar 31, 2017 5:50:35 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
相關文章
相關標籤/搜索