用于IOT项目的多服务器通信的Java单客户端线程

问题描述 投票:1回答:1

我想为TCP IP通信创建一个客户端线程。但是客户端线程应该能够同时与至少10000台服务器进行通信。因为我想与数百万台服务器(实际上是基于GPRS的现场设备)进行通信,所以启动和管理数百万个客户端线程并不是一个好习惯。我已经尝试使用NIO Selector来做到这一点。但是我发现这仅适用于服务器线程。我也尝试过ThreadPoolExecutor。这也无法同时管理大量连接。请给出一个很好的建议,以在不启动太多线程的情况下管理大量服务器。

java multithreading sockets tcp
1个回答
0
投票

[也许使用诸如Play框架或Vert.x之类的非阻塞性内容来处理这些请求。他们使用将工作分配到您的自定义线程池,以避免阻塞。

https://www.lightbend.com/blog/why-is-play-framework-so-fast

由于播放是非阻塞的,因此当网络速度很慢,但是可以自由地服务于另一个HTTP请求-并且因为Play是无状态的,没有会话信息绑定到该线程会混淆它。

对于Vert.x几乎是同一件事

也许也看一下Erlang和Go。

© www.soinside.com 2019 - 2024. All rights reserved.