Java 新套接字连接与保持活动状态

Java new socket connection vs keep-alive

我正在为 IoT 网络构建 TCP/TLS 服务器。我正在使用 Java NIO 和 Reactor 模式来实现非阻塞,随时准备为服务器提供服务。某些服务器操作可能需要几秒钟,因此我选择将 NIO 与工作线程一起使用。什么是更好的?保持大量大部分空闲的连接(将超过 10000 个连接),还是强制为每个请求打开连接会更好?什么更具可扩展性和性能?我试图搜索它,但找不到 Java 使用 NIO 进行比较。

在对我的测试环境进行研究和试用后,我决定采用并发方式。我对使用并发连接的开销进行了基准测试,而不是每 5 秒创建一个新连接。我设置了类似于 MigratoryData 服务器的 linux。

来源: 我的基准 MigratoryData 解决 10M 问题 ( https://mrotaru.wordpress.com/2015/05/20/how-migratorydata-solved-the-c10m-problem-10-million-concurrent-connections-on-a-single-commodity-server/ )