java - 如何在单个 Java 服务器上处理超过一百万个并发客户端?

标签 java tcp nio scalability

我正在构建一个 NIO Java TCP 服务器,它能够容纳多达一百万个并发客户端。不幸的是它必须是 TCP 连接。

有哪些实践可以实现这一目标?我从 Node.JS 处理模型(我认为是经典的 NIO 方法)中获得灵感:即一个事件循环线程和用于卸载长时间运行任务的工作线程。

我读到过有关人们实现了超过一百万个并发连接的报道。但是,打开套接字的数量怎么可能超过可用端口的数量呢?操作系统打开文件数的限制呢?

最佳答案

一个端口上接受一个线程。线程池。要么安排一个请求(特别是在高负载时),要么立即将其传递给工作线程。

关于java - 如何在单个 Java 服务器上处理超过一百万个并发客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33260539/

相关文章:

java - initbranch.io 出现问题

c - Socket编程read()函数出错为什么?

java nio 无法写入文件,旧式文件可以工作。怎么了?`

Java + Android Jetpack + Dagger 2 在 ViewModel 中注入(inject)

java - 致命异常 : main com. firebase.client.FirebaseException:无法弹回键入

sockets - 客户端和服务器的不同套接字缓冲区大小

java - 通过 TCP 套接字的 Avro 通信

java - JDK中 `sun`开头的包源在哪里获取?

java - 使用 NIO 浮点缓冲区在 Java 中进行快速 4x4 矩阵乘法

java - 为什么我必须投一个按钮?