Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat 8,NIO是如何工作的_Java_Tomcat_Nio - Fatal编程技术网

Java Tomcat 8,NIO是如何工作的

Java Tomcat 8,NIO是如何工作的,java,tomcat,nio,Java,Tomcat,Nio,我想了解NIO在tomcat中是如何工作的 我在app.prop server.tomcat.max-connections = 80 server.tomcat.max-threads= 70 当应用程序启动时,我从JVisualVM 据我所知(从线程名称来看),只有10个线程来自Tomcat连接池(它们的名称类似于http-nio-exec-1)。然后使用wrk我使用 wrk -t12 -c400 -d30s http://localhost:8080 (12个螺纹和400个接头) 现

我想了解NIO在tomcat中是如何工作的

我在
app.prop

server.tomcat.max-connections = 80
server.tomcat.max-threads= 70
当应用程序启动时,我从
JVisualVM

据我所知(从线程名称来看),只有10个线程来自Tomcat连接池(它们的名称类似于http-nio-exec-1)。然后使用
wrk
我使用

 wrk -t12 -c400 -d30s http://localhost:8080
(12个螺纹和400个接头)

现在,Tomcat创建70个http nio连接,当它们不活动时,Tomcat将杀死其中60个

我的问题:

1) 我开始学习Java中的NIO包,我知道由
ServerSocketChanel
创建的服务器每秒可以处理1000个请求。为什么Tomcat首先创建与我们在
max threads
prop中编写的线程一样多的线程,然后才使用NIO概念

2) 我不清楚什么是
server.tomcat.max connections

从文档:
服务器在任何给定时间接受和处理的最大连接数。达到此号码后,服务器将接受但不处理另一个连接。

但在测试过程中,我也打开了浏览器,我没有等待免费连接


(从
wrk
我向服务器发送了400个连接,但当我打开localhost:8080时,我也能够在浏览器中看到网页)

它需要线程来同时处理请求,即使这些线程没有执行实际的I/O。
wrk
是否支持HTTP keepalives?默认情况下是启用还是禁用它们?