socket多线程处理TCP长连接问题

迷途小书童m 2018-03-29 10:05:51
公司有一大堆GPRS模块在外,数量大概在3W左右,还在不断的增长。现在需求是,这些模块需要跟服务器建立TCP长连接,然后每5分钟像服务器发送一条数据(GPRS模块连接的设备品牌不同,发送至服务器的端口不同)。我现在的处理方式是,使用socket,监控不同的端口,然后每个模块长连接建立一个线程来处理。这个方法一开始是没有问题的,但随着数量越来越多,线程数量越来越多,服务器经常发生奔溃。求教大神,采用哪种方式处理更好?
PS:GPRS模块必须采用TCP长连接,短连接是不支持的。
...全文
502 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
比特灵 2018-03-30
  • 打赏
  • 举报
回复
这么样的规模阻塞式的SOCKET就不要再坚持了,上面说的NETTY可以试试,最近我也在学用,我这里的规模比你小多了。
maradona1984 2018-03-29
  • 打赏
  • 举报
回复
并不需要为每个连接开一个线程,可以考虑NIO,或者用成熟的框架,比如netty 客户端发送数据的时间均匀分布
oyljerry 2018-03-29
  • 打赏
  • 举报
回复
利用IO multiplexing技术,就是IO复用,可以用少数的线程维持大量的长连接

50,348

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧