首页 新闻 会员 周边

【架构】一个大型高并发的WEB系统采用哪种架构更合理?

0
悬赏园豆:10 [已解决问题] 解决于 2011-01-25 01:16

 

设计一个大型的,高并发的WEB应用系统,迷茫采用何种方式的架构。请大伙帮忙提议提议,三层? MVC? ORM? WCF? 又或者混合?

数据承载千万级,访问并发万级以上的互动WEB应用; sql server + c#.net ,明白架构不能决定一切,我觉得一个更合理的架构对开发速度,维护,性能都存在很多的影响。

我个人觉得此时webform不适合,但是用第三方视图引擎又怕性能问题,即使缓存视图也要付出很多代价。对MVC方面我没多少经验,还是请大伙帮忙建议下,从性能,维护,开发速度等多方面考虑。谢谢

Richwong的主页 Richwong | 初学一级 | 园豆:120
提问于:2011-01-21 16:45
< >
分享
最佳答案
0

看你的提问还没有明白怎么去做高并发,并不是语言框架的问题,而是基于每个小细节的优化以后的架构,

而且万级以上的并发,你得硬件和带宽够吗,这些往往比软件的瓶颈小的多的多,看你的提问来猜想你公司的硬件,我感觉你首先去考虑一下带宽和硬件,万级的并发最少带宽得100M以上

收获园豆:5
无记 | 菜鸟二级 |园豆:309 | 2011-01-22 17:24
硬件和带宽不是问题的,百独服务器2台做分布式搭载的。我主要是想听听大家建议哪种程序架构,针对性能,开发速度,后期维护上更好。只是相对更好。
Richwong | 园豆:120 (初学一级) | 2011-01-22 17:27
@Richwong:你公司的入口网络带宽是多少的
无记 | 园豆:309 (菜鸟二级) | 2011-01-22 17:42
服务器在机房啊
Richwong | 园豆:120 (初学一级) | 2011-01-22 17:49
@单程列车: 服务器在机房,是100Mbps独享线路,上传下载12MB/S左右, 双至强4核5502,8G,1TB RAID0,1TB RAID1 双磁盘阵列.
Richwong | 园豆:120 (初学一级) | 2011-01-22 17:52
@Richwong:一次HTTP请求,即使没有任何文本,一个连接来回一次是1K左右,10000并发的话就是100M了,而且所谓100Mbps独享线路根本不行的,就是网通或者电信主干网络接入的话100M都挺够呛10000并发的,IDC的你就别指望了
无记 | 园豆:309 (菜鸟二级) | 2011-01-22 20:21
而且你的硬件也支持不到,IIS就别指望了,apache的相比IIS好一点,在windows下一个apache节点最多支持2000线程,得布多个,然后用F5或者类似的硬负载,软负载的话10000并发肯定会出问题,一台F5差不多30万左右,双至强4核5502,8G,1TB RAID0,1TB RAID1 ,服务器性能也低了点,我用的DELL的R900和910都要支持10000并发都用了8台做的负载,10000并发的东西对硬件要求实在是高的,没有自己的机房而且是好点的机房,即使程序架构达到了,没硬件的支持也是白搭的
无记 | 园豆:309 (菜鸟二级) | 2011-01-22 20:25
总之,我的经验是非常高的并发的需求下,首先判断硬件达到没,不然软件架构和细节的优化上很花时间,最终花了很大精力能够支持几十万的并发了,结果发现硬件和带宽远远跟不上,甚至最多给你支持到2000并发,你就傻眼了,要知道全国用的系统来说,500并发就已经很可观了,10000并发差不多表示你网站得有100000甚至更多的活跃用户
无记 | 园豆:309 (菜鸟二级) | 2011-01-22 20:29
@Richwong: 而且我所说的这些还只是一次简单的HTTP无返回内容的访问情况,也就是最小的数据量,只算了HTTP请求报头来回的1K,还没考虑后端的数据库的并发和负载
无记 | 园豆:309 (菜鸟二级) | 2011-01-22 20:32
@单程列车: 谢谢列车, 硬件上相对还是比较容易解决的.无非是采用高性能服务器组成服务器群,采用群负载,按地域就近分配服务器,如CDN遍布等.这样每台机器的并非一般也不超过1000, 我上面所提的一万并发是未来假想数,也就是开发系统时按此级别.并发数也不是突然上去的,随着并发增加而增加服务器群,CDN区域服务器等. 在程序上,分布式散列架构,但在程序框架上,我还是拿不定注意,MVC,WEBFORM,WCF等,这里个框架可能不免得混合,总会有个主题基础框架的.
Richwong | 园豆:120 (初学一级) | 2011-01-22 21:27
其他回答(6)
0

直接 html+javascript?

收获园豆:2
顾晓北 | 园豆:10844 (专家六级) | 2011-01-21 17:59
全部用ajax取动态数据? 这样开发速度慢,维护难,而且性能也一般吧.
支持(0) 反对(0) Richwong | 园豆:120 (初学一级) | 2011-01-21 18:06
性能的瓶颈不在这里,再说你能做多大的?google、百度那么大的?
支持(0) 反对(0) 顾晓北 | 园豆:10844 (专家六级) | 2011-01-21 18:13
哈哈,自然没那么大, 一般来说性能的瓶颈在于IO读取和数据库吧. 高并发恰巧要在IO读取和数据库读写上. 这方面可以做成分布式的磁盘IO读写,数据库也可以散列或分布式. 但在服务端的数据处理上, 顾老大以为哪种的程序架构比较好?
支持(0) 反对(0) Richwong | 园豆:120 (初学一级) | 2011-01-21 20:18
大的网站来说,会把程序跟数据库分开,放到两个服务器上面,一个数据库服务器,一个网站的程序服务器,再大的话,就是n个服务器了,数据库的话,主要就是缓存(数据库管理器的缓存,像sqlserver本身会有缓存,然后你在程序中也要缓存),如果说IO的话,看看淘宝286亿图片的存储架构是怎么解决IO瓶颈的。
支持(0) 反对(0) 顾晓北 | 园豆:10844 (专家六级) | 2011-01-24 09:45
0

具体问题具体分析,这种问题没有固定答案。

Firen | 园豆:5385 (大侠五级) | 2011-01-22 10:37
问题基本很具体了,高并发高交互,类似论坛. 求相对答案. 只求相对的架构方式,不求实现,因为实现方式才真正是具体情况具体分析的
支持(0) 反对(0) Richwong | 园豆:120 (初学一级) | 2011-01-22 11:53
0

        先根据现有成熟技术储备搭建框架,优化等可以按照规划来做。

    有时候不在于你用什么,而在于你怎么合理的使用。

收获园豆:3
clound | 园豆:481 (菜鸟二级) | 2011-01-22 15:58
是的,细节,处理方法很重要。但是也有一种情况是程序基本架构不合理,再处理使用中会有很多瓶颈很多冗余,要到那时候解决会多花许多时间和精力。我认为选择一个较好的基本架构就是造楼房的钢筋柱一样。
支持(0) 反对(0) Richwong | 园豆:120 (初学一级) | 2011-01-22 17:33
@Richwong:你提问题的背景本身就是很矛盾的,比如你说“webform不适合,但是用第三方视图引擎又怕性能问题,即使缓存视图也要付出很多代价”,在ASP.NET MVC没出来之前很多大的网站也是用webform来做的。你又说MVC 没经验,其实总是会有一个从0开始的过程,我觉得你是缺少点自信,以前我也这样,现在好多了。跟自己说,我行的,多花点时间,有挑战才有兴趣。
支持(0) 反对(0) clound | 园豆:481 (菜鸟二级) | 2011-01-24 09:21
@clound: 呵呵,我的确缺少对高并发架构的自信,只能尝试。 问题中也是矛盾纠结的,所以拿来向大家求经,MVC没有很多的经验是可以学习和积累的,只要他更适合我。 特别是有这方面经验的朋友如果可以告诉我某个第三方视图引擎可行,或者MVC更合适,我会立马研究深入去。。 :)
支持(0) 反对(0) Richwong | 园豆:120 (初学一级) | 2011-01-24 14:20
0

我现在也是碰到这问题,而且公司在服务器上只能配置4G的,我要求是8g的,所以我现在只能是在程序上一直下工夫

jason2013 | 园豆:1998 (小虾三级) | 2011-10-18 11:54
0

@wydycg@顾晓北@Richwong

我一直以为petshop4.0的架构挺经典的,是不是我水平太浅了,还没接触其他的?

滴水冰寒 | 园豆:43 (初学一级) | 2012-01-14 10:33
0

使用mongodb内存数据库

开源的框架这里有 www.8088net.com

一灯2 | 园豆:204 (菜鸟二级) | 2016-01-23 14:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册