tomcat9更换运行模式为 Apr 模式
在选择 Tomcat 的连接器模式时,通常会考虑性能、并发性和可扩展性等因素。在 Tomcat 中,常见的连接器模式包括 BIO(Blocking IO)、NIO(Non-blocking IO)和 APR(Apache Portable Runtime)。
-
BIO(阻塞式IO):在BIO模式下,每个请求都会创建一个线程,该线程会一直阻塞直到请求完成。虽然BIO模式简单易用,但在高并发环境下性能较差,因为每个连接都需要一个线程,当连接数量增加时,线程数量也会增加,从而导致资源消耗和性能下降。
-
NIO(非阻塞式IO):NIO模式使用非阻塞IO来处理连接。它使用少量的线程来处理大量的连接,因此在高并发环境下具有更好的性能和资源利用率。NIO适用于需要处理大量连接但每个连接处理时间较短的场景。
-
APR(Apache Portable Runtime):APR模式是建立在NIO之上的一种模式,它利用了操作系统提供的本地IO功能。与纯Java NIO相比,APR通常可以提供更好的性能,特别是在处理大文件和高并发时。然而,APR模式需要依赖本地库,而且配置起来可能相对复杂。
一般来说,在不考虑特定需求的情况下,NIO模式是一个很好的选择,因为它在大多数情况下都能提供良好的性能,并且不需要额外的本地库支持。但是,如果你需要处理大文件或对性能有极高要求,可以考虑使用APR模式。
vim /usr/local/tomcat/conf/server.xml <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="300" minSpareThreads="30"/> <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" redirectPort="8443" acceptCount="900" disableUploadTimeout="true" URIEncoding="UTF-8" enableLookups="false" compression="on" compressionMinSize="1024" /> <!-- Define an AJP 1.3 Connector on port 8009 --> ##注释掉下面那行,如果不用apache <!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->