我想创建一个实时聊天服务器,目前我已经在该服务器中创建了一个服务器,我使用 TCP 协议与客户端通信,当客户端连接到我的服务器时,我为该客户端创建一个新线程,现在它工作正常我只连接了 100 个客户端,但我希望我的服务器一次至少处理大约 20000 个客户端。所以我非常关心我的服务器的性能,我知道创建 20000 个线程根本不是一个好习惯,所以我希望一些专家告诉我必须遵循哪些步骤来创建一个能够轻松处理的可扩展聊天服务器至少20000个客户。我希望你能给我一些链接。
问问题
1455 次
1 回答
2
你是对的,为每个客户创建一个新线程不是一个好主意。您可以考虑基于 NIO 的 TCP 服务器。其中有一个固定大小的线程池,这些线程同时为请求提供服务。20000 个 TCP 连接不是由线程维护的,而是在需要采取某些操作时系统唤醒可用线程之一。我使用Apache Mina这是一个基于 JAVA 的 NIO TCP 服务器来开发类似的服务,并发现它的扩展性非常好。
如果你想建立一个像你提到的那样的聊天服务器,你还需要担心你将如何以及在哪里保存聊天记录、用户管理等。
于 2013-06-22T19:16:44.730 回答