我正在构建一个 NIO Java TCP 服务器,它能够容纳多达一百万个并发客户端。不幸的是它必须是 TCP 连接。
有哪些实践可以实现这一目标?我从 Node.JS 处理模型(我认为是经典的 NIO 方法)中获得灵感:即一个事件循环线程和用于卸载长时间运行任务的工作线程。
我读到过有关人们实现了超过一百万个并发连接的报道。但是,打开套接字的数量怎么可能超过可用端口的数量呢?操作系统打开文件数的限制呢?
最佳答案
一个端口上接受一个线程。线程池。要么安排一个请求(特别是在高负载时),要么立即将其传递给工作线程。
关于java - 如何在单个 Java 服务器上处理超过一百万个并发客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33260539/