0

我正在使用 netty 编写一个网页游戏服务器,并打算使用 keep-alive 来获得更高的性能。
如果我将 CachedThreadPool 用于老板和工作人员执行程序,则服务器对于保持活动和非保持活动连接都可以正常工作。
但是,如果我使用 FixedThreadPool(1) 一个用于老板,一个用于工作人员,第一个响应会发送到客户端,但如果浏览器使用该连接发送第二个请求,它将被阻塞并在服务器超时,我关闭该连接并 firefox 打开新套接字,这个套接字在第一次响应时也可以正常工作。(我已经在响应头中包含了 Connection Keep-alive 和 ContentLength 并使用 httpAnalyzer 工具仔细检查它。
那么有人可以告诉我为什么会发生这种情况以及将线程与netty一起用于网络游戏服务器的最佳实践是什么。如果 netty 是异步的,这不应该发生吗?

4

1 回答 1

2

您应该始终使用 CachedThreadPool 并使用 NioSocketChannelFactory 的构造函数来限制使用的线程。我认为它也记录在 javadocs 中。

于 2012-07-08T12:49:25.850 回答