我在Tomcat 8
上運行Spring MVC
應用程序Elastic Beanstalk
的worker tier
。對於那些不熟悉Elastic Beanstalk
的用戶,無論何時發生SQS事件,亞馬遜都會自動執行POST
請求給我的工作人員Spring MVC
應用程序。然後,我的應用程序處理請求並返回200(除非明顯出現問題)。Tomcat on Elastic Beanstalk - Tomcat中的多線程線程
我想用併發同時處理單個POST
請求。例如,假設我需要執行10個不同的昂貴計算。我想用ExecutorService
來讓10個線程同時執行工作,而不是串行執行。
- 這是不好的做法?如果不是的話,那麼在這種方式下旋轉新線程是否會有性能危險?
- 線程的分配是如何實際工作的(例如,它們是從Tomcat的線程池還是其他東西中被盜取)?
- 是否應該有可供所有Tomcat線程訪問的共享線程池?如果是這樣,它應該有多大?
- 將工作分解爲更多的SQS事件並實質上將子任務分配給Tomcat線程,而不是在單個Tomcat線程中執行它更好嗎?