我理解Java NIO (通道,选择器,..)。我想更好地理解Tomcat NIO,这样我就可以从Spring引导中适当地配置Tomcat的线程池。
有人能解释一下每个线程池的用途是什么吗?这些线程池是如何与Java NIO相关的?如果您还可以指出在处理HTTP请求期间使用哪个线程池,这将是很有帮助的。
在线程转储期间观察到的一些Tomcat8线程池:
http-nio-<port>-Acceptor (usually 1 or 2 threads)
http-nio-<port>-ClientPoller-<index> (usually 2)
http-nio-<port>-exec-<index> (usually 10)
NioBlockingSelector.BlockPoller-<index> (usually 2)发布于 2017-03-03 00:47:17
这可以通过在application.properties中设置“server.tomcat.max- => =10”来控制。如果它设置为1,那么您只会看到一个线程http-nio--exec-1。
我也在尝试寻找其他线程池。
发布于 2020-06-11 23:09:19
Spring和Tomcat的正确解决方案是使用两个属性:
server.tomcat.max-threads=200 # Maximum amount of worker threads.
server.tomcat.min-spare-threads=10 # Minimum amount of worker threads如果您更改server.tomcat.min-spare-threads下面的线程,那么您将拥有与max- server.tomcat.max-thread属性一样多的线程。
如果您更改了server.tomcat.min-spare-threads,那么您将拥有指定的任意数量的线程。
例如,如果您设置为:server.tomcat.min-spare-threads=15,那么您将拥有15个http-nio-8080-exec-*
https://stackoverflow.com/questions/40722254
复制相似问题