0

我有一个使用 Netty (3.6.6-Final) 的高速 UDP 服务器,但请注意后端服务器可能需要 1 到 10 秒来响应 - 我无法控制这些,因此无法改善那里的延迟。

发生的情况是所有处理程序工作线程都忙于等待响应,并且任何新请求都必须等待处理,随着时间的推移,这个响应来得很晚。是否可以针对给定的请求发现线程池已耗尽,以便及早拦截请求并发出服务器繁忙响应?

4

1 回答 1

0

我会使用一个ExecutionHandler配置有适当ThreadPoolExecutor的、最大线程数和有界任务队列的。通过选择不同的RejectedExecutionHandler策略,您可以RejectedExecutionException用“服务器忙”来回答,或者使用“调用者运行策略”,在这种情况下,IO 工作线程将执行任务并创建一个推回(但这就是你想避免)。

无论哪种方式,容量有限的执行处理程序都是前进的方向。

于 2013-06-25T20:04:29.350 回答