接口大量等待外部资源导致其它接口无法访问

浮躁的码农 发布于 2017/03/03 17:00
阅读 111
收藏 1

我的api项目(使用Tomcat作为服务器),有一个api(假设这个接口为api-a)需要调用外部接口,这个外部接口会很长时间才返回结果,当有大量的请求访问api-a的时候,导致其它的api-b,api-c,api-d……等接口访问都要等待(我觉得应该是线程池线程资源被api-a占用了),这样的问题大家有遇到过吗?欢迎大家提出自己的解决方案。

我分享下我的解决方案:

我是修改了下tomcat的最小线程数,将其调大到50个,即每时每刻都会有50个活跃线程,同时我增加了最大线程数到800(max-Threads=800),目前虽然没有发现问题,但是总感觉我的方案不靠谱。

加载中
0
yysf
yysf
servlet3.0支持异步执行,可以为每个请求单独开一个线程,这样不会占用tomcat线程
yysf
yysf
需要修改代码
浮躁的码农
浮躁的码农
这在tomcat中可以以配置的方式实现吗?
0
googlewell
googlewell
碰到过,有许多http请求都有keep alive属性,可以在tomcat中关闭掉所有的这种请求。
返回顶部
顶部