spring boot app只接受6个请求为什么?

时间:2016-04-08 08:15:35

标签: spring multithreading spring-boot postman

这真让我烦恼,并希望有人可以提供帮助。

我有一个弹簧启动应用程序,我正在向邮递员发送请求,我需要同时触发大约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

提前致谢

1 个答案:

答案 0 :(得分:10)

许多人不知道(或忘记)的是,大多数浏览器都有最多可以为每台主机触发的并行请求。多少取决于浏览器和浏览器版本。 (显然你使用Postman,它使用chrome,允许6个并发请求)。

List of parallel connections per browser

有关更详细的说明,请参阅http://sgdev-blog.blogspot.nl/2014/01/maximum-concurrent-connection-to-same.html