首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java面试 >

高并发1-2万,给点提议

2013-07-01 
高并发1-2万,给点建议最近公司在做一个网站,并发量的数量大的惊人,每秒1-2万,硬件暂时不考虑,现在只考虑软

高并发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 上我算是见识了!

恩,我也是,看到大家都是每秒上万的访问量,感觉自己的经验差的很呀
------解决方案--------------------


客户在做梦 你们就陪客户做梦 
你的需求调研就是开会听客户说?

[解决办法]

引用:
网站正在做,就已经有这么大的访问量了?

弄不弄就是个上万的并发量,而且诸如此类的帖子还不少,在 CSDN 上我算是见识了!


呵呵!
[解决办法]
又是想出来的,并女1-2万的并发量.... 让他们慢慢想吧。

  兄弟你想多了,到时候并发能达到几百不错了。
[解决办法]
操作数据库直接用JDBC
[解决办法]
火龙果说的是对的,从你的角度,可以从很多角度去说服客户改变他的说法。

说实话,我觉得,这是一个项目经理应该处理的管理上的问题,不是技术问题。

另:spring mvc?上万并发不是不可能,不过,需要n台硬件去支撑,得不尝失的。
[解决办法]
具体我也不大会,只是感觉,如果真有这么高的并发量,这个网站也离门户网不远的了。
5楼说得还不错,学习了
[解决办法]
关注楼主结贴率。

引用:
网站正在做,就已经有这么大的访问量了?

弄不弄就是个上万的并发量,而且诸如此类的帖子还不少,在 CSDN 上我算是见识了!

[解决办法]
引用:
呵呵,看来以上的所有回复,觉得真的很好笑!
对于一个高并发的应用程序来说,并不是上面几位仁兄所说的那么简单。程序的架构设计对于高并发程序是至关重要的。的确用什么框架并不重要,框架只是解决了你的开发效率的问题,并没有解决应用程序的吞吐量,可用性等与高并发有关的问题。
关于提高吞吐量,可以关注如下方面:尽量使请求异步处理(使用通知或消息等异步处理机制)、IO的合理负载(这个很关键,大部分性能问题……

顶一下。
楼主要弄清楚高并发下性能问题不应该花在考虑用哪个框架。哪个框架影响并不会太大。我们公司的系统也是个高并发的。同时在线会员最高达1000多点,但对数据的增删改查我想不会比你形容的低。我们系统没使用任何java框架就在页面使用json 和 prototype用于数据的封装以及ajax 异步请求。
5楼这位兄弟的观点很好。还有一点补充的是数据库的设计同样非常重要。历史数据与即时数据最好分开数据库存储在不同的服务器上,我想这一点跟5楼兄弟说的分布式应该有点,因为对分布式没更详细的研究过所以不敢在方面发表观点。
[解决办法]
我是看错标题进来的,我把标题看成了“高工发1-2万。。。”,年终奖?不用建议,直接收了就OK,哈哈
[解决办法]
我路过拿分。。。
[解决办法]
我現在是幷發一兩百人就問題一大堆了
[解决办法]
动不动  高-->  病发
[解决办法]
路过 参观
[解决办法]
路过  瞧瞧!!!
[解决办法]
楼主,不是针对你本人。一个项目,如果真的能达到一万并发,绝对不会交到你或者其他问“改用Struts还是Spring”或者类似问题的人手上。

BTW,做了6,7年项目,实际最大并发都最多只是用百做单位的。
------解决方案--------------------


引用:
lighttpd+squid+apache+tomcat


lighttpd+squid+apache+memcached+tomcat

[解决办法]
我也只做过并发量上百的东西
你可以参考CSDN回帖
让用户等几秒 再访问结果 
或者采用异步请求 总之就是在不降低用户体验的前提下 延长响应时间

从LZ所述并发量要求的效率角度来看的话 
最好不使用任何框架
因为不管哪个框架 使用JAVA内省和类反射等这些效率相对低下但灵活性高的API都是少不了的
如果仅仅上百的话用哪个都行
[解决办法]
我的项目中,并发到了20多人,都是问题一堆堆的,唉!
[解决办法]
高流量的网站,并不赞成使用集成框架,单纯的jsp+JavaBean网站效率远远高于集成框架,因为框架只是辅助我们开发的工具,使用框架集的好处是提高开发效率,缩短开发周期而已!框架把很多方法都集成进去,我们在开发的时候直接拿来用就可以了!

对于高流量网站,开发的思路是分层是必须的,可以降低耦合度!要使用集成框架必须进行改造!

SSH框架不考虑,太庞大;Struts不适用于太大的系统,超过20个ACTION以上开始慢了,在进行压力测试的时候,其性能直线下降;Spring属于轻量级框架,可以考虑使用,但是还是需要进行改造,去掉多余的功能,或者将能用到的提取出来!
以上是对框架集使用的一些建议,在抛去框架集后,我们需要重点考虑的几点:
1,数据库的持久化设计,也就是对连接池的选择。你可以在以上的框架中将连接池单独抽取出来,如Hibernate的C3P0,或者Proxool,DDConnectionBroker,BoneCP等等
2,数据缓存的处理,高访问量网站,缓存机制是不可缺少的,可以参考Hibernate的持久化类实现方式!
3,对业务逻辑的处理,MVC模式是不二的选择,可以参考Struts的架构,但是如何去把握,这个是度的问题
4,页面以何种方式进行展示!
5,对数据库的选择以及优化,这个必须有专人对其进行维护!
6,容器的选择,Apache Tomcat,weblogic和websphere等,如果人手充足对容器的选择和优化也会起到事半功倍效果
7,硬件的选择,不考了
---------------------------------
话外话一:火龙果说的没错,如果真有这么高的访问量,那公司的规模肯定不小,这样的话技术实力也就不用说了,不会为选择用什么框架而到CSDN来发帖询问,按理说公司自己就本身而言会自己设计自己的框架!
话外话二:如果你对你们的技术实力不相信,而且你的实力很厉害,你可以应聘到国内大的门户网站技术部去了解人家的实现方式,或者去国外的公司也未尝不可呢!

[解决办法]
高并发是客户要求的, 你只能这样做了

我们公司规模很小(不到20人), 但为了应付合作方(该合作方是一互联网公司,在它所属行业是绝对的NO.1)的压力测试(对方打压力测试, 每秒并发惊人)
我们公司买了两台F5来做负载均衡
web服务器好像用的是resin(不太确定,好像apache启服务,resin也起来)
以上硬件和软件架构全是清华的一牛人(总经理)弄的
[解决办法]
tomcat每秒大概并发可以达到1000-2000, 要在里面运行点儿业务,那性能顶多1000/秒。
然后你要达到每秒10000,那就是最少10台机器。
我觉得如果有静态页面的话,前面可以加个apache。
Struts是很慢,不过你可以改改源码,把没用的功能去掉。
[解决办法]
我以为年终奖并发2w
[解决办法]
要满足这么个并发量,两台F5是绝对不够的。软件架构不用太复杂,满足业务架构就行,用50台服务器用F5做load balance,我相信能满足,哈!
[解决办法]
进来看答案
[解决办法]
s2或者spring mvc都是像webwork一样 每一个请求创建一个Action实例...

好奇的问下 啥网站每秒1-2W? CL? MY? WYT?
[解决办法]
路过,学习了
------解决方案--------------------


这个贴有营养,值得Mark一下。
[解决办法]
菜鸟,围观中。。。。。。。。。。。。。。。
[解决办法]
硬件,集群,负载均衡。
[解决办法]
还是没有结果。。。
[解决办法]
既然这么NB,继续使用原来的技术就不得了。非要一个新手用Java从头做吗?
[解决办法]
高并发问题。是个复杂逐渐解决的问题。敢问楼主你们网站的瓶颈是什么?
[解决办法]

引用:
楼主,不是针对你本人。一个项目,如果真的能达到一万并发,绝对不会交到你或者其他问“改用Struts还是Spring”或者类似问题的人手上。

BTW,做了6,7年项目,实际最大并发都最多只是用百做单位的。

同意你的说法
[解决办法]
学习了~~~

热点排行