繁体   English   中英

Spring MVC控制器如何处理多个长HTTP请求?

[英]How Spring MVC controller handle multiple long http requests?

正如我发现的那样,String中的控制器是单调的Spring MVC控制器是单调的吗?

问题是,Spring如何处理多个耗时的请求到同一映射? 例如,当我们要返回一个模型,该模型需要长时间的计算或与其他服务器的连接时,并且有很多用户正在向同一网址发送请求?

我认为异步线程不是解决方案,因为方法需要在维护下一个请求之前结束? 或不..?

使用线程池(由容器管理)处理请求,因此每个请求都具有独立的上下文,控制器是否为Singleton都无关紧要。

重要的一点是,Singleton实例不得在请求之间共享状态,以免发生意外行为或竞争状况。

线程池容量将定义服务器在同步模型中可以处理的请求数。

如果要使用异步方法,可以使用许多选项,例如:

  1. 具有一个独立的线程池来处理来自容器线程的任务,或者
  2. 使用队列来推送任务并使用调度程序处理任务,或者
  3. 使用Websocket发出请求,并使用(1)或(2)进行处理,然后在完成时接收通知。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM