0

我有一台服务器和大约 150 台客户端机器。所有客户端都注册到服务器,服务器对注册的客户端进行方法调用(回调)。

在这个系统中,服务器会定期 ping 所有连接的客户端(ping 是一种回调方法)(连接活动检查)。但是,如果我在一个线程中执行所有客户端的 ping 操作。由于在不可用的客户端上等待方法调用的时间,它工作得太慢了。如果连接断开,它会等待超时发生。所以等待时间太长了。我对连接活性检查有一个新想法。
我将为每个连接的客户端创建一个线程。每个线程只会控制自己的客户端。所以所有系统连接检查都将由这些线程完成。

有用吗?

这个项目还有其他专业的offer吗?

谢谢。

4

1 回答 1

0

在检查您的客户端时,服务器充当它们的客户端,因此它实际上是双向公平正确的架构。如果您希望中央节点了解客户端状态,请通过在一定间隔内使用心跳消息轮询客户端来让客户端向服务器“问好”。一旦服务器没有收到下一个预期的心跳,客户端就被认为是死的。启动更多线程不会带来优势,反而会导致性能下降。考虑使用工作线程或某种演员模式来处理心跳。

于 2012-04-05T19:15:45.773 回答