我有一台服务器和大约150台客户端计算机。 所有客户端都注册到服务器和服务器,在注册的客户端上进行方法调用(回调)。
在此系统上,服务器定期ping所有连接的客户端(ping是回调方法)(连接活动检查)。但是,如果我在一个线程中做所有客户端ping操作。由于在不可用的客户端上等待方法调用,因此工作太慢。如果连接中断,则等待超时发生。所以等待的时间太长了。 我对连接活动检查有了新的想法 我将为每个连接的客户端创建一个线程。每个线程都将控制自己的客户端。因此,所有系统连接检查都将由这些线程完成。
有用吗?
这个项目有没有其他专业报价?
感谢。
答案 0 :(得分:0)
在检查客户端时,服务器充当客户端,因此它实际上是双向公平的架构。如果您希望中央节点知道客户端状态,请通过在特定时间间隔内使用心跳消息轮询客户端向服务器“打招呼”。一旦服务器没有收到下一个预期的心跳,客户端就被认为是死的。启动更多线程不会带来优势,但可能会导致性能下降。考虑使用工作线程或某种actor模式来处理心跳。