这真让我烦恼,并希望有人可以提供帮助。
我有一个弹簧启动应用程序,我正在向邮递员发送请求,我需要同时触发大约20个单独的请求。但是我的应用程序只接受6,然后当这些已完成时启动其他应用程序。
我把这个例子麻痹了,以便在这里发布
简单的控制器方法
@RequestMapping(value = "/testPost", method = RequestMethod.POST)
public @ResponseBody String handleFileUpload() throws InterruptedException {
System.out.println("Recieved request for Thread sleeping" + Thread.currentThread().getName());
Thread.sleep(40000);
System.out.println("Recieved request for Thread waking" + Thread.currentThread().getName());
return "returning from post";
}
application.properties:我将最大线程数更改为200而不是默认值,但没有区别
server.contextPath=/qas
server.port=8081
server.tomcat.max-threads=200
记录邮递员发出的请求。正如您在6个请求后看到的那样,第7个请求仅在第1个请求空闲后才能得到服务。我在我的本地桌面上运行没有负载均衡器这是什么原因?不确定为什么它会在6点停止?
日志:
2016-04-08 09:02:35.408 INFO 17700 --- [nio-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/qas] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2016-04-08 09:02:35.408 INFO 17700 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2016-04-08 09:02:35.421 INFO 17700 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 13 ms
Recieved request for Thread sleepinghttp-nio-8081-exec-1
Recieved request for Thread sleepinghttp-nio-8081-exec-2
Recieved request for Thread sleepinghttp-nio-8081-exec-3
Recieved request for Thread sleepinghttp-nio-8081-exec-4
Recieved request for Thread sleepinghttp-nio-8081-exec-5
Recieved request for Thread sleepinghttp-nio-8081-exec-6
Recieved request for Thread wakinghttp-nio-8081-exec-1
Recieved request for Thread sleepinghttp-nio-8081-exec-7
Recieved request for Thread wakinghttp-nio-8081-exec-2
Recieved request for Thread sleepinghttp-nio-8081-exec-8
Recieved request for Thread wakinghttp-nio-8081-exec-3
Recieved request for Thread wakinghttp-nio-8081-exec-4
Recieved request for Thread wakinghttp-nio-8081-exec-5
Recieved request for Thread wakinghttp-nio-8081-exec-6
Recieved request for Thread wakinghttp-nio-8081-exec-7
Recieved request for Thread wakinghttp-nio-8081-exec-8
提前致谢
答案 0 :(得分:10)
许多人不知道(或忘记)的是,大多数浏览器都有最多可以为每台主机触发的并行请求。多少取决于浏览器和浏览器版本。 (显然你使用Postman,它使用chrome,允许6个并发请求)。
有关更详细的说明,请参阅http://sgdev-blog.blogspot.nl/2014/01/maximum-concurrent-connection-to-same.html。