簡體   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