我在 java 中构建了一个服务器应用程序,客户端可以在其中连接 . 我已经实现了一个心跳系统,客户端每隔 x 秒发送一条小消息。在服务器端,我将客户端发送消息的时间保存在 HashMap 中,如果我收到来自客户端的任何消息,我会为每个客户端使用 TimerTask 每隔 x 秒检查一次。
少量客户端一切正常,但客户端数量增加(2k+)后,内存量非常大,加上Times必须处理大量TimerTask,程序开始占用大量CPU。
有没有更好的方法来实现这一点?我考虑过使用数据库并选择在一定时间内没有发送任何更新的客户端。你认为这会更好,还是更好的方法。