当前位置:编程学习 > C#/ASP.NET >>

看谁能回答这个问题,关于服务器架构设计的

假设需要设计一个可以容纳10000人在线聊天的应用程序。现在有以下三种方式:

1. 100个聊天室,每个聊天室可以容纳100人。
2. 1000个聊天室,每个聊天室可以容纳10个人。
3. 10个聊天室,每个聊天室可以容纳1000个人。

假设每个人每分钟要说一句话,同聊天室的每个人的话都可以被同室人看到。
问:服务器端那种方案最省资源?为什么?请用数据说话。答对的人可以到上海伊购网络科技有限公司领取大奖。奖品是一只Park钢笔。有问题可以电话联系 021-61682990 --------------------编程问答-------------------- 1应该是这三种方案中好的方案


--------------------编程问答--------------------
引用 1 楼 net_java_dram 的回复:
1应该是这三种方案中好的方案
呵呵,不是这个哦,谢谢参与 --------------------编程问答-------------------- 对服务器来说,其实就是一个双层循环问题 

for()
{
 for()
 {
  }
}

从外到内,循环数量依次增加的时候,性能最优。
当然如果程序写的烂,稳定性不高我选一;
如果自信程序写的好,超稳定,我选三;


就是不选2 --------------------编程问答--------------------
引用楼主 sherohua 的回复:
1. 100个聊天室,每个聊天室可以容纳100人。
2. 1000个聊天室,每个聊天室可以容纳10个人。
3. 10个聊天室,每个聊天室可以容纳1000个人。
……


算了,我不捣乱了。
选3.

最基本的理由是,每个聊天室应该是并行运行的,服务器处理核心基本最接近10。(我想没人用128核心服务器或者1024核心服务器去弄个聊天室吧。如果有,我承认我错了,我承认我是再次在捣乱)如果超过服务器核心数,更多的并行处理反而造成一些聊天室无法正常的使用,而且要求内存去hold住等待序列。

至于每个聊天室容纳1000 100 10三种人数,其实到头来都是整个服务器hold住10000个socket对象的实例而已。没太大区别。 --------------------编程问答-------------------- Park钢笔 好象很贵是波?。。先还看成ipad了。。

另:我选3,因为读取是 10次/分钟。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,