java做聊天服务器效率问题

问题描述

必须试用socket每条消息最大200字符单条广播上限3000人然后我就算了一下....200字符我给打成ByteArray了是600字节(不算压缩)广播一次我用的是遍历Hashmap就是600*3000=1800000=1757KB.....这么大的IO......一条消息就这样了....总感觉这是非常愚蠢的啊....但不知道最佳做法是什么而且需求是一个程序服务器拖几台服务器也就是说几台3000人.....就一般的1U服务器JAVA服务器上行IO能达到多大啊我估计能有10mb/s就是上帝了(小弟无知)那这么说托5台3000人绝对够喝一壶的了....望指教聊天服务器最佳做法(单server)

解决方案

解决方案二:
CPU应该不会是瓶颈,网络带宽够大就行局域网内千M网卡能达到100M/S
解决方案三:
不过广播的话你不用发3000遍吧直接用网络的广播功能就好
解决方案四:
网络的广播功能指的是??
解决方案五:
朋友们呢?
解决方案六:
如果服务器是2M的带宽,那么,楼主算的结果,1秒钟就能将所有信息都发送完毕。下面说一下个人理解:首先,网络通信,其实是分单播和多播两种的。楼主使用单播来逐个发送广播信息,当然会占用大量带宽。使用多播协议发送广播,会得到改善。其次,像楼主这样的聊天室程序,每个聊天室是限制容量的,并且,容量一般在500到800之间。将聊天室的服务端程序,分别部署在不同的服务器上,可以大致的平衡网络负载。最后,我们使用的聊天室程序,并非即时语音功能的,所以,文本信息,延迟个几秒钟并不影响使用。
解决方案七:
引用3楼zjkboy的回复:

网络的广播功能指的是??

将数据发给广播地址,广播会帮你去散布消息。说得简单点就是发给一个特定的IP地址就可以了。至于广播地址是多少,就不很好讲了,因为根据内网的IP不同,广播地址可能也不同,不过你BAIDU一下就可以了,可以找到广播地址的算法类
解决方案八:
用java在老师指导下做过不过发多了服务器就卡了
解决方案九:
不是很懂,,,

时间: 2025-01-29 11:56:49

java做聊天服务器效率问题的相关文章

求高手点拨学习心得关于:java做聊天软件

问题描述 学了一点点的java想要学习一下制作聊天软件,但觉得很盲目,知识也不全面,更重要的是自己能力有限,但是希望能做一点点东西,想慢慢尝试弄一个聊天软件,不知道应该从什么地方开始学习,希望各位师兄师姐,学弟学妹能给一点建议,和交流,在这里非常的感谢大家了!! 解决方案 解决方案二:首先你要确定自己要做出来的软件是什么效果,是B/S的还是C/S的,不同的结构用到的技术是不一样的.我没事的时候做过C/S的一个聊天工具,主要用到的就是swing.servlet.Thread.jdbc的一些知识.s

用JAVA做WEB一定要用SSH等框架吗?

问题描述 最近学着用JAVA做WEB服务器,七拼八凑弄出个难看的可以用的东西:界面只有几个各功能的连接.数据库用JDBC.每个任务后台对应一个servlet,感觉很不对劲.难道一定要用SSH等框架来实现吗,都来说说看,怎么学习JAVA动态服务器开发. 解决方案 解决方案二:小项目不一定用SSH框架,至于你说的每个任务对应一个servlet,你可以在一个serlvet中写其他的方法,在页面顶多多传一个method的属性,在doget或者dopost中的判断这个method,来调用相应的方法,比如你

网站-用JAVA语言如何做一个服务器

问题描述 用JAVA语言如何做一个服务器 我要做一个网站,接收终端机发来的信息并且处理,再发数据给终端机,这样该怎么做 解决方案 java开发网站后台服务器端,看你的规模了. 如果网页简单你就直接使用这个Servlet进行开发就可以了. 很方便就可以实现了. 如果比较复杂,那你就考虑使用框架吧. 使用SSH或者是SSI框架组合进行开发. 假定你已经想好了你的网站的访问Url,业务处理方法,以及你存储数据的数据库的设计都OK,制作流程大致如下 (如果没有,你先从纸面分析设计下你的系统都有什么功能(

java做服务器

问题描述 java做服务器时怎样解析jsp等动态页面 解决方案 解决方案二:通过tomcat容器,将页面放在容器中去动态解析.楼主可以看看servlet与jsp解决方案三:楼主啥也不懂,还是先学习一下基础,要不报个培训班.解决方案四:看看servlet原理.jsp其实就是servlet解决方案五:解析JSP需要web服务器.比如tomcat.weologic等等解决方案六:你是说web服务器吗?jsp/servlet用web容器去运行.常见的tomcat,weblogic等等解决方案七:属于网络

java-如何做一个服务器网站,有没有源代码(JAVA)

问题描述 如何做一个服务器网站,有没有源代码(JAVA) 其实我不懂我把网页制作好后怎样发布出去,要让别人访问到我,而且可以进行数据交互,终端机要连接我的服务器,成功后要返回连接成功,这都该怎么做啊 解决方案 如何做一个自己的服务器网站 解决方案二: 你说的什么是服务器网站呢?java web就是创建web应用即网站的技术. 这里有一个FTP服务器工具实现的简单例子,参考:http://blog.csdn.net/stewen_001/article/details/19553173/ 解决方案

经常听见别人说php做前台java做后台请问他们之间是怎么通讯的咯? 效率高吗? 有什么优点?

问题描述 经常听见别人说php做前台java做后台请问他们之间是怎么通讯的咯?效率高吗?有什么优点? 解决方案 解决方案二:顶顶顶顶顶解决方案三:只要按照某种协议就行!或者webService,Hessian之类的通信解决方案四:没遇到过来学习.....解决方案五:用java.io和java.net两个包:解决方案六:Quercus-楼主研究研究,似乎用java开发包,用php调用http://www.caucho.com/resin-3.0/quercus/#New-Java/PHP-Arch

使用java做毕业设计,遇到一个疑惑,请问下

问题描述 自己想使用Java在pc机上写一个程序,当做服务器程序使用.在另一方面有很多客户端.服务器和客户端程序之间能够进行类似于QQ一样的聊天和传送数据.目前面临的疑惑是,刚刚装了一个tomcat,发现tomcat是做web服务器,总和网页相关.请问下,能不能不做网页相关呢?因为我的客户端也是一个软件形式,用网页访问显得不是很好,服务器端亦然.服务器和客户端的通信,如果不用tomcat等,是不是需要在PC机上写一个socketserver程序然后客户端写一个socketclient,这样实现我

MongoDB 做日志服务器

MongoDB 做日志服务器.   写日志最常用的方式是写入纯文本文件,然后安日期分割文件,压错旧文件.   这样的日志与对懂shell,perl语言的人分析起来非常方便,对于程序员来说还是更喜欢写入数据库服务器,然后通过sql语句查询. 对于程序员来说sql语句提供了丰富查询功能,相比文本文件分析更容易.   下面就是一个简单日志表, 尽量做到通用所以只有message.           Sql代码   CREATE TABLE `logging` (       `id` INT(10)

基于java得web服务器实现[Z]

web|web服务|web服务器 基于Java的Web服务器工作原理1 一个 Web 服务器也被称为 HTTP 服务器,它通过 HTTP 协议与客户端通信.这个客户端通常指的是 Web 浏览器.一个基于 Java 的 Web 服务器用到二个重要的类,java.net.Socket 与 java.net.ServerSocket ,并通过 HTTP 消息通信.因此,本文从讨论 HTTP 与这二个类开始,然后我将解释一个与本文相关的简单的 Web 应用. The Hypertext Transfer