gpt4 book ai didi

java - 如何配置用于 Jersey REST 调用的最大并发线程数?

转载 作者:行者123 更新时间:2023-11-30 11:29:26 25 4
gpt4 key购买 nike

我正在开发一个服务器应用程序,它使用 Jersey JAX-RS 来处理 REST,使用 Shiro 来处理身份验证,仅此而已在 Tomcat 实例上运行。

我遇到的问题是 REST 调用似乎是串行处理的(或者至少,只有少量并发线程)。

我在 NodeJS 中编写了一个小测试,它在大约 5 秒内将大约 80 个用户登录到服务器。我发现每个用户的响应时间逐渐变长。这是我的输出:

Login completed in 3256 ms
Login completed in 3752 ms
Login completed in 3830 ms
Login completed in 3957 ms
Login completed in 4304 ms
Login completed in 4528 ms
Login completed in 4724 ms
Login completed in 4814 ms
Login completed in 5072 ms
Login completed in 5171 ms

...删除了一些,你明白了

Login completed in 25337 ms
Login completed in 26364 ms
Login completed in 26738 ms
Login completed in 27114 ms
Login completed in 27266 ms
Login completed in 27337 ms
Login completed in 27847 ms
Login completed in 28365 ms
Login completed in 28571 ms
Login completed in 32358 ms

登录调用执行一些数据库工作然后返回。有趣的是,我还在服务器端对调用进行计时,它总是报告大约 3 秒到 6 秒的登录时间。

这告诉我,请求在到达我的代码之前就已经排在某个队列中了。我读过 Jersey 应该为每个请求启动一个新线程,但是我达到了最大值吗?如果是这样,我该如何增加/配置它?还是 Tomcat 配置问题?

我已禁用 Shiro 以确保它不会导致问题。

最佳答案

好傻的我。排队实际上发生在 Node 端。我错误地认为 Node 会自动并行发送每个请求,但我必须增加 maxSockets 值才能使其正常工作(请参阅 Nodejs Max Socket Pooling Settings)。

关于java - 如何配置用于 Jersey REST 调用的最大并发线程数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com