我有一臺服務器,其中有48個CPU託管TomEE + 7.0.2上的Java EE 7 REST API。TomEE中的託管執行程序服務
某些API需要儘可能多地使用CPU,因爲它們運行的是並行算法。 並行化部分不需要任何數據庫或其他資源,只需要在共享double [] []矩陣中進行一些繁重工作。
我通常在EJB上下文中工作,但對於這個特定的實例,它不是一個需求(也不是最好的)。
到目前爲止我用
ExecutorService pool = Executors.newFixedThreadPool(maxThreads);
,以實例的執行者,但因爲這似乎產卵於操作系統級別的實際線程我不是它的忠實粉絲 - 後一些JMeter的負載測試它甚至引發了一個問題,整個bash被阻塞,我甚至無法再通過SSH連接服務器,直到硬重啓。
我偶然發現了「託管執行程序服務」的概念,但我無法在線找到有關如何使用該目錄的教程/示例(並對其進行配置)。
難道有人可以分享下面的想法嗎?
a)如何在TomEE中配置線程池(例如,通過server.xml,context.xml或tomee.xml),代碼示例將不勝感激?
b)有沒有辦法只使用一些默認線程池(並且足夠聰明以至於不需要調整,如果不需要,我可以從哪裏開始調整)?
c)如何查找Java中的線程池然後 - 首選通過JDNI查找?
d)如果我曾經決定讓這個資源成爲EJB的一部分,那麼注入的代碼是什麼樣的?
我的應用程序上下文在server.xml中被指定爲「myContext」,所以如果您提供樣本,請指出查找字符串的樣子是怎樣的?
除此之外,我有一個非常簡單的安裝TomEE + 7.0.2,到目前爲止我沒有觸及任何配置。
非常感謝您的幫助!
丹尼爾