服务器有64G内存,够不够?可以怎么设计这个聊天室?我的理解是:因为socket肯定是需要存到内存中,所以同时在线的10w个也都需要存到内存中。结果就是我认为这么多数据都需要存内存中。
解决方案 »
- null是什么
- 高手进,解决完就送分!!!!!在线等待!!!
- 求JAVA写的简单排课系统
- 菜鸟 问问引用问题。
- 三个初级问题
- 如何在weblogic8.1下改变web容器的部署描述符文件名称
- 请问这个图片加载正常要多长时间?
- 这句信息是什么意思?
- 用swing做的一个gui,可以用键盘和按钮控制一个小球上下左右移动 但是用按钮控制以后,键盘就不能再控制了
- 用socket及java.net.*下的相关类与方法可以具体做些什么样的实例系统?请大虾指明一下方向!!
- win7操作系统,安装完ant之后,执行ant命令报错,在cmd 里面执行 ant,报错:“此时不应有 D:\Program”。 请高人指点啊,多谢。
- 有关java使用代理ip访问网站
别说64GB,64TB内存估计都不够用
再说一台机器可用的端口数有限,一般不超过65536个,你这根本创建不了那么多Socket。。另外2000万个Socket这种规模,你想用一台服务器搞定,开什么玩笑?就算内存够用,CPU,磁盘IO,网络IO承受得了2000万个Socket?你当那是超算?超算都不带这样玩的。。
这种规模都是大型集群服务,而且为了速度,一般还设有很多分布式节点服务器为不同地区的用户导流,通常都有几百甚至上千台各类服务器协同工作最后提醒你一下你确定这是实在的需求,而不是你的美好展望?
10万个房间,每个房间能容纳200人,也就是理论同时在线可达千万人,这种规模的聊天室,全世界都数得出来有哪些吧
人的socket是监听的socket吧,又不是客户端socket,怎么会有2000w个怎么多?
为了减少Socket数量,你可以让每个客户端公用一个Socket。
有足够的内存保持长连接,不代表你的一台服务器能处理多少连接。比如你的服务器只能处理5W次/s交互,而你实际需求可能有10W次/s,那么肯定是不行的。
感谢建议,我会去了解下。
但是客户端怎么公用一个socket呢?每一个用户加入聊谈室都要新建一个socket与服务器连接。能否详细说说?
恩,一个服务器端程序测了是4000个左右。多开几个服务可以连接更多socket。我怕瓶颈是内存扛不住