小编Abh*_*tia的帖子

等待"漫长"时间重用tomcat线程

配置
Web服务器:Nginx
App服务器:Tomcat,默认配置为200个请求服务线程
我服务器的预期响应时间:~30秒(有很多第三方依赖项)

情景
每10秒钟,应用程序需要生成令牌以供其使用.令牌生成的预期时间约为5秒,但由于其第三方系统通过网络进行联系,因此显然不一致,最长可达10秒.
在令牌生成过程中,每秒几乎80%的传入请求都需要等待.

我认为应该发生的事情
由于等待令牌生成的请求必须等待"很长"的时间,因此没有理由在等待令牌生成过程完成时重新使用这些请求服务来服务其他传入请求.
基本上,如果我的20%继续服务是有意义的.如果等待的线程没有被用于其他请求,那么将达到tomcat请求服务限制,服务器将基本上阻塞,而不是任何开发人员想要的东西.

我做了什么
最初我希望切换到tomcat NIO连接器可以完成这项工作.但看了这个比较后,我真的没有希望.尽管如此,我试图迫使请求等待10秒,但它没有用.
现在我正在考虑我需要的线路,等待,搁置请求,等待并需要通知tomcat该线程可以自由重用.类似地,当请求准备好向前移动时,我将需要tomcat从其线程池中给我一个线程.但我对如何做到这一点或者即使这是可能的也是瞎了.

任何指导或帮助?

java multithreading tomcat nginx

12
推荐指数
1
解决办法
1169
查看次数

标签 统计

java ×1

multithreading ×1

nginx ×1

tomcat ×1