求助socket客户端接收海量数据问题

chookcql 2013-09-30 05:02:51
socket客户端怎么接收服务器推送的海量数据写到内存中才能造成服务器不堵塞,大概每秒有30m的数据量。求帮助,求方案。
注:本人通过多线程处理接收还是会造成服务器堵塞(代码中就只有通过MemCached写将数据写入内存中的代码)。
...全文
364 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsjpower 2013-10-06
  • 打赏
  • 举报
回复
引用 7 楼 preferme 的回复:
要千兆网才能完成这种数据量的传输。 可以考虑的方案有: 一,换成千兆网,进行数据传输。 二,更改传输协议,将不必要的数据或相同的数据,省去不传输。(如果无效数据过多) 三,压缩后传输,传输后解压。(GZIP压缩效果好但压缩速度慢,ZIP快很多)
表示同意,另外唠叨下,数据处理使用线程池进行处理,不要影响到主线程。
阿七哥 2013-10-06
  • 打赏
  • 举报
回复
底层传输,管道。
冰思雨 2013-10-03
  • 打赏
  • 举报
回复
要千兆网才能完成这种数据量的传输。 可以考虑的方案有: 一,换成千兆网,进行数据传输。 二,更改传输协议,将不必要的数据或相同的数据,省去不传输。(如果无效数据过多) 三,压缩后传输,传输后解压。(GZIP压缩效果好但压缩速度慢,ZIP快很多)
wfeng007 2013-10-02
  • 打赏
  • 举报
回复
服务器堵塞? 你这先要看网络带宽多少,网卡带宽,然后看操作系统网络模块底层的设定。比如,底层buffer或者窗口大小。backlog数量。然后看操作系统对用户的资源授权。然后再看程序。 另外,客户端接收数据服务端会堵塞?这是那门子设计。。服务端不是多线程的么?服务端一个线程在读取数据到客户端,你整个服务端阻塞? 你服务器是不是oom了?不是io阻塞,你是读取太多数据到内存,javaheap爆掉了?
无聊找乐 2013-10-01
  • 打赏
  • 举报
回复
30M每秒?给服务器和客户端装千兆网卡用光纤连接
无聊找乐 2013-10-01
  • 打赏
  • 举报
回复
30M每秒?给服务器和客户端装千兆网卡用光纤连接
caofeng891102 2013-10-01
  • 打赏
  • 举报
回复
这个一般通过缓存机制。
麦田 2013-09-30
  • 打赏
  • 举报
回复
你是在工作中遇到socket吗
yktd26 2013-09-30
  • 打赏
  • 举报
回复
有没有试试提高buffer size? setReceiveBufferSize 试试提到56k,默认好像只有8k及其影响速度 还有你是怎么多线程处理的?

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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