继续补充:
经过前面基本原理以后,楼主问题可以知道一些答案,我再详细回答如下:
能够满足同时100人访问,关键在于每个请求耗费的资源是否多,这也是相对的,如果你的CPU够强,内存够多,那么可以这个值相对来说低,这也就是可以解释这种情况:你的系统可能经常发生死机,你就采取提高硬件的办法,提高CPU,增大内存,原来系统是每3小时死机,那么现在提高硬件后,可能是不会每3小时死机了,但是会每天或两天死机,因为你根本问题没有解决,硬件提高只是苟延残喘。
这就象以前SAS一样,当初得SAS的人只能靠名贵呼吸机延长寿命,病毒源没有找到啊。
当然,也有侥幸的,虽然每天死机,但是,每天我可以重新启动了,你可以躲避每天死机了,但是注意,如果访问量比以前增加了,那你可能又回到每3小时死机的老路。
这些解决方案都是可以称为没有可伸缩性的,no scalable,我们软件架构一定要注重可伸缩性,这是软件架构重要内容,以前为什么没有架构这个词语,现在特别重视,这也是一个原因,都是失败经验教训,那些不重视架构的人,必然会重蹈覆辙,这些都是因为无知产生的可悲结果。
这也是2003年/2004年极力推荐EJB原因,因为EJB机制本身已经包含了资源控制和优化,如果你理论上对于前面原理不熟悉,选择EJB还能避免你架构方向错误。
如果你理论上属于无知,又狂热追求Spring这些新玩艺(当初),那么,即使你使用Spring,性能还是和Jsp+JavaBeans一样,在大访问量情况下经常死机,因为Spring里面需要手工配置Pool或Cache这些资源控制机制。
所幸,JdonFramework只需你实现一个Poolable接口就可以了。
回到可伸缩性话题上,不但架构要考虑单机,还要考虑单机不够怎么办?一味提高单机性能,在不断增长的访问量情况下,还是有单点风险,这是过去集中式主机思维的毛病。
我们需要廉价的,无单点风险的、多机的、集群的软件架构。这才是真正有伸缩性的。