0-1 - 執行緒池資源耗盡
伺服器的執行緒資源已耗盡。預設情況下,Dubbo 伺服器上的業務執行緒數為 200。如果並行請求數超過 200,新的請求將被拒絕並拋出此錯誤。
可能原因
- 來自 Consumer 的並行請求量過大,導致 Provider 上建立的執行緒數超過限制。
- 可能在 Provider 端執行業務時,執行緒因為業務呼叫外部應用程式介面而阻塞,導致執行緒池無法回收執行緒。
故障排除和解決步驟
- 啟用 Dubbo 的存取日誌功能,檢查短時間內是否有大量 RPC 服務呼叫。
- 透過
jps
和jstack
指令檢查執行緒池中每個執行緒的狀態,查看是否有業務呼叫外部應用程式介面造成阻塞。 - 如果來自 Consumer 的並行請求量過大,則調整 Provider 端的
dubbo.provider.threads
參數,增加 Dubbo 執行緒池的數量。 - 如果 Provider 業務的 QPS 過大,目前伺服器數量無法處理,則增加 Provider 端伺服器的數量,讓更多伺服器分擔壓力。
此錯誤碼的常見問題頁面請參考 「Dubbo 常見錯誤及解決方法」。引用文章以 CC-BY-4.0 授權編譯。在此感謝原作者。
上次修改時間:2023 年 1 月 3 日:合併錯誤碼 3-3 至 3-8,6-4 至 99-0。(#1796)(a687d30ae03)