高并发1-2万,给点建议
最近公司在做一个网站,并发量的数量大的惊人,每秒1-2万,硬件暂时不考虑,现在只考虑软件框架,大家有什么好的建议?我们目前打算在struts MVC and spring MVC 中做一个选择,但是现在需要看看到底用那一个?大家给点建议或者说说这两个的优缺点?只针对我说的这个项目。谢谢啦
------解决方案-------------------- 如果你的网站很简单的话,什么框架都不要用,弄个数据库连接池就够了。
框架用得越多,性能越差。对于你提到的两个框架,半斤八两,从性能上讲没什么区别。
------解决方案-------------------- 如果是我,我会选择struts MVC 的框架去搭建,数据库连接池的技术一定要用
我觉得这些并发也得需要硬件支持,你程序写的再快,硬件不行也白搭
我觉得这是软件和硬件相辅相成的
------解决方案-------------------- 如果是每秒1-2万的并发,这种访问量不是纯软件可以解决的了,一定要有硬件支持,至少要多准备几台服务器吧,单服务器肯定是不灵的。
Struts和Spring的差别不大,这种量需要负载均衡、缓存技术、分布式存储等相关技术整合了。
PS:每秒1-2万并发,如果排除程序问题的话,每小时要3600万-7200万的访问量?高得惊人,多备几台服务器吧。
------解决方案-------------------- 呵呵,看来以上的所有回复,觉得真的很好笑!
对于一个高并发的应用程序来说,并不是上面几位仁兄所说的那么简单。程序的架构设计对于高并发程序是至关重要的。的确用什么框架并不重要,框架只是解决了你的开发效率的问题,并没有解决应用程序的吞吐量,可用性等与高并发有关的问题。
关于提高吞吐量,可以关注如下方面:尽量使请求异步处理(使用通知或消息等异步处理机制)、IO的合理负载(这个很关键,大部分性能问题主要集中在IO上,目前大部分人还是依赖高价值的NAS存储)、上面有人提到缓存,这也是一个方法,但是同时缓存增加了数据同步的开销和复杂度,应该权衡的使用、另外如果当你的应用程序达到一定规模时应该关注如何拆分系统(目前一般通过对业务的抽象进行拆分系统),构建分布式环境。
关于高可用性,可以关注如下方面:避免应用系统的单点故障、对服务流量的控制(当达到一定请求负载时可以进行限流)、对于事务的控制(尽量避免长事务)。队列和线程池的合理使用(线程使用失控将导致系统崩溃)、故障隔离(应用系统的设计要考虑故障的隔离,当某个模块出现问题,不能导致整个应用系统的不可用)、设计强大的监控系统(用于快速发现系统的故障,以便快速的恢复)、集群部署。
其实创建一个高并发的应用系统不是一蹴而就的,需要一个漫长的过程,不断的自我调整,达到系统的最佳状态。
------解决方案-------------------- lighttpd+squid+apache+tomcat
------解决方案-------------------- 网站正在做,就已经有这么大的访问量了?
弄不弄就是个上万的并发量,而且诸如此类的帖子还不少,在 CSDN 上我算是见识了!
------解决方案-------------------- 引用: 客户对他们的创新很有信心,所以客户就是上帝嘛!!
那你们的客户就想用一台服务器对付可能这么大的并发量??
------解决方案-------------------- 。。。火龙果。。。汗!!!
本来想看看 你的见解的。。。。失望了。。。
------解决方案-------------------- 引用: 网站正在做,就已经有这么大的访问量了?
弄不弄就是个上万的并发量,而且诸如此类的帖子还不少,在 CSDN 上我算是见识了!
恩,我也是,看到大家都是每秒上万的访问量,感觉自己的经验差的很呀
------解决方案--------------------