【问题标题】:spring boot app only accepts 6 requests why?spring boot 应用程序只接受 6 个请求,为什么?
【发布时间】:2016-07-29 10:17:55
【问题描述】:

这真的很烦我,希望有人能提供帮助。

我有一个 Spring Boot 应用程序,我正在向邮递员发出请求,我需要同时发出大约 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 个请求仅在第一个请求空闲后才得到服务。我在没有负载平衡器的本地桌面上运行是这个原因吗?不太清楚为什么它会在 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

提前致谢

【问题讨论】:

  • 大多数浏览器都限制向同一域 / url 触发 6 个并发请求。见sgdev-blog.blogspot.nl/2014/01/…。因此,它与您的后端无关,而与您如何触发请求有关。

标签: spring multithreading spring-boot postman


【解决方案1】:

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

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

另见https://stackoverflow.com/a/985704/2696260

【讨论】:

猜你喜欢
  • 2019-03-27
  • 2023-03-19
  • 2020-06-19
  • 1970-01-01
  • 2018-08-23
  • 2020-09-30
  • 1970-01-01
  • 2014-05-10
  • 1970-01-01
相关资源
最近更新 更多