0

我尝试在php中构建一个socket服务器,但发现由于php缺乏多线程能力,如果服务器加载了连接(可以说即使是少量的300连接),服务器会很减缓。

我已经切换到 java,并构建了一个多线程套接字服务器,并试图在 10 秒内用 100 个连接重载它,我必须说它勇敢地接受了它。我自己的电脑(导致过载)在过程,但服务器看起来他很好。

因为我正在构建一个应该同时运行大量连接的服务器,所以我试图提高效率,而不是让任何幽灵连接打开。

在那里我正在实现一个“保持活动状态”方法,我的问题如下:如果我在我的服务器中打开了 600 个打开的连接,显然它需要服务器时间在所有线程之间运行以检查保持活动状态,甚至得到来自客户端的保持活动消息 - 检查是否发送保持活动消息的适当时间应该是什么时候。我想了大约 2 分钟 - 所以服务器要忙,另一方面我不希望我的客户经常发送数据..有什么建议吗?

4

1 回答 1

0

600 个打开的连接。假设每 2 分钟 120 秒发送一次 keep-alive,这意味着每秒大约有 5 个线程准备好发送 keep-alive。假设所有的连接都建立起来,五个线程将在不久之后再次准备好处理来自对等方的回显。因此,大约需要运行 10 个线程/秒来支持保持活动。

这是一个微不足道的负载。

如果客户端很忙,那么这些客户端将不会被发送保持活动状态,因此当客户端变得有用忙碌时,保持活动状态的负载会下降。

你听起来应该没事。

于 2012-05-11T13:54:57.780 回答