簡體   English   中英

如何配置用於Jersey REST調用的最大並發線程數?

[英]How can I configure the maximum number of simultaneous threads used for Jersey REST calls?

我正在開發一個使用Jersey JAX-RS處理RESTShiro處理身份驗證的服務器應用程序,並且它們都在Tomcat實例上運行。

我遇到的問題是REST調用似乎是串行處理的(或者至少使用少量並發線程)。

我在NodeJS中編寫了一個小測試,該測試在大約5秒鍾內將大約80個用戶登錄到服務器中。 我發現,每個用戶的響應時間逐漸變長。 這是我的輸出:

Login completed in 3256 ms
Login completed in 3752 ms
Login completed in 3830 ms
Login completed in 3957 ms
Login completed in 4304 ms
Login completed in 4528 ms
Login completed in 4724 ms
Login completed in 4814 ms
Login completed in 5072 ms
Login completed in 5171 ms

...刪除了一些,你就明白了

Login completed in 25337 ms
Login completed in 26364 ms
Login completed in 26738 ms
Login completed in 27114 ms
Login completed in 27266 ms
Login completed in 27337 ms
Login completed in 27847 ms
Login completed in 28365 ms
Login completed in 28571 ms
Login completed in 32358 ms

登錄調用完成一些數據庫工作,然后返回。 有趣的是,我還在服務器端計時呼叫,它總是報告大約3s-6s的登錄時間。

這告訴我,請求在命中我的代碼之前就處於隊列中。 我讀過Jersey應該為每個請求啟動一個新線程,但是我達到的最大值是嗎? 如果是這樣,如何增加/配置它? 還是這是Tomcat配置問題?

我已禁用Shiro以確保它不會引起問題。

好傻的我。 排隊實際上發生在Node端。 我錯誤地認為Node自動並行發送每個請求,但是我必須增加maxSockets值才能使其正常工作(請參閱Nodejs Max Socket Pooling Settings )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM