我有一个使用Netty(3.6.6-Final)的高速UDP服务器,但注意后端服务器可能需要1到10秒才能响应 - 我无法控制这些服务器,因此无法改善那里的延迟。
所发生的是所有处理程序工作线程都忙于等待响应,并且任何新请求必须等待处理,随着时间的推移,这个响应很晚才会响应。是否有可能发现给定的请求线程池已耗尽,以便尽早拦截请求并发出服务器忙响应?
答案 0 :(得分:0)
我会使用配置了适当ExecutionHandler
的{{1}},其中包含最大线程数和有界任务队列。通过选择不同的ThreadPoolExecutor
策略,您可以捕获RejectedExecutionHandler
以“服务器忙”来回答,或者使用“调用者运行策略”,在这种情况下,IO工作线程将执行任务并且创建一个推回(但这是你想要避免的)。
无论哪种方式,具有有限容量的执行处理程序都是前进的方向。