線程池隊列滿了怎么辦 線程池滿了怎么辦?
線程池滿了怎么辦?不要盯著線程池,而是看問題在哪。比如是任務太多,CPU太滿,調大線程池無用。這時應該先加CPU,或者加機器。如果CPU很富裕,是線程池上限卡住了,簡單調大最大值即可。如果是任務執(zhí)行時
線程池滿了怎么辦?
不要盯著線程池,而是看問題在哪。
比如是任務太多,CPU太滿,調大線程池無用。這時應該先加CPU,或者加機器。
如果CPU很富裕,是線程池上限卡住了,簡單調大最大值即可。
如果是任務執(zhí)行時間實在是太長了,讓“請求在任務完成后再返回”這個設定不合適,造成用戶體驗差,那么應該將系統(tǒng)設計為啟動任務后請求就返回 定時的ping任務完沒完。
dubbo線程池滿了會超時嗎?
在dubbo調用過程中被調用方有兩個線程池:io線程池,業(yè)務線程池。
這也是dubbo調優(yōu)的點。
配置信息:
Dispatcher
all 所有消息都派發(fā)到線程池,包括請求,響應,連接事件,斷開事件,心跳等。
direct 所有消息都不派發(fā)到線程池,全部在 IO 線程上直接執(zhí)行。
message 只有請求響應消息派發(fā)到線程池,其它連接斷開事件,心跳等消息,直接在 IO 線程上執(zhí)行。
execution 只請求消息派發(fā)到線程池,不含響應,響應和其它連接斷開事件,心跳等消息,直接在 IO 線程上執(zhí)行。
connection 在 IO 線程上,將連接斷開事件放入隊列,有序逐個執(zhí)行,其它消息派發(fā)到線程池。