Multithreading 使用调度程序时Tomcat和RxJava之间的线程问题
我有一个web应用程序,它只是充当一个前端控制器,使用Spring Boot调用其他远程REST服务,在这里我将Spring的延迟结果与Scheduler.computation()上订阅的观测值相结合 我们还使用JMeter来强调web应用程序,我们注意到当JMeter中调度的并发线程数量从25个增加到25个时,请求开始失败,状态为500,没有响应数据,任何地方都没有日志,这对于Tomcat来说显然是一个非常“可管理”的数字 深入研究使用VisualVM分析如何创建和使用线程的问题,我们意识到使用rx.scheduler在某种程度上影响了Tomcat NIO创建的线程数量。让我总结一下我们基于使用的rx.Scheduler的测试,以及在JMeter中使用100个用户(线程)的测试:Multithreading 使用调度程序时Tomcat和RxJava之间的线程问题,multithreading,threadpool,spring-boot,rx-java,tomcat8,Multithreading,Threadpool,Spring Boot,Rx Java,Tomcat8,我有一个web应用程序,它只是充当一个前端控制器,使用Spring Boot调用其他远程REST服务,在这里我将Spring的延迟结果与Scheduler.computation()上订阅的观测值相结合 我们还使用JMeter来强调web应用程序,我们注意到当JMeter中调度的并发线程数量从25个增加到25个时,请求开始失败,状态为500,没有响应数据,任何地方都没有日志,这对于Tomcat来说显然是一个非常“可管理”的数字 深入研究使用VisualVM分析如何创建和使用线程的问题,我们意识到
提前感谢。您能调试应用程序并在任何异常上设置断点吗?对于immediate()情况,您的代码可能会减慢/挂起Tomcat的工作线程,这就是为什么您会看到这么多的工作线程。@akarnokd,实际上在immediate()情况下,我确实看到了Tomcat预期的线程数,即100。这是奇数。也许Tomcat会检查有多少其他线程正在运行,并将自身限制为总共10个线程。不过,我从没听说过Tomcat有这样的行为。