2009-11-18 58 views
4

我需要为任务委派创建Web应用程序,监视并生成组织报告。我应该为10,000个并发用户实现哪个.net架构以用于Web应用程序

我在想ASP.Net和MVC应该是支持这么多并发用户的体系结构。有没有其他更好的建筑,我应该寻找?

什么样的服务器配置将需要持有这个应用程序? 在启动此应用程序之前,如何测试连接的用户数量,是否提供免费/经济测试工具?

在此先感谢。 anil

+0

10,000并发(同时)是很多用户! – Rippo 2009-11-18 07:51:01

+0

你的建议 – 2009-11-18 07:54:11

+1

我认为Rippo询问你是指总共10,000个用户还是10,000个同时登录和工作的用户 - 这就是并发的含义。这是很多用户。我认为你将需要一个能够模拟10,000个并发用户的严肃实验室。 – serialhobbyist 2009-11-18 13:11:51

回答

4

MVC与webforms的选择与应用程序处理负载的能力几乎没有任何关系。您的问题将是读取/写入数据库,并且不管您选择哪一个都不会改变。 提高处理负载能力的想法:

首先也是最重要的:绝对最小值是两台服务器:Web服务器和数据库服务器,它们绝不应该在同一个盒子上运行。

DB: 高效查询数据库,DB中的索引,非常规化表中的命中,CACHE,CACHE CACHE,在集群中运行数据库,哦,我提到了CACHING吗?

处理: 如果你需要大量处理,这样做是可以在网络服务器上独立的机器上运行的Web服务,使您可以扩展(购买更多的服务器,并把它们背后负载平衡器如果需要的话)

WEB: 避免需要服务器关联(以便在任何给定时间哪个Web服务器为给定用户提供服务并不重要),这意味着使用DB或StateServer存储会话,将MachineKey同步到服务器上。

使用MVC或不会对处理10,000个并发用户的能力没有影响,但它的,如果你希望自己的网站被单位可测试使用MVC一个巨大的好处的决定

记住:应用程序将被可测试或可憎的,您的选择

0

对于这个大的设置,我强烈推荐使用分布式内存缓存提供程序来分层放置在数据库之上。我也真的建议使用一个支持内存缓存的ORM,比如NHibernate,因为在这个规模的应用程序中,你最大的瓶颈肯定是你的数据库。

如果单个服务器足够强大,并且在不久的将来某个时候您很可能会增长一个盒子,那么您很可能需要一个webfarm,这就是为什么在首先分配缓存,这样您就可以扩展您的农场,而不必重新构建整个系统。

2

缓存缓存缓存:-)一个智能缓存策略将使得即使一台服务器也有很长的路要走......除此之外,你需要找出瓶颈将会发生的地方。如果您的应用程序数据库很大,那么您需要考虑通过集群或分片来扩展数据库。如果您希望Web服务器成为瓶颈(例如,如果您正在进行大量处理,如图像处理等),那么您可以使用负载平衡器在Web群中的N个服务器之间分配请求。

+1

完全同意。通过向我们的Web应用程序添加分层缓存机制,我们将服务器负载降低了大约80%。 – Patonza 2009-11-18 20:40:56

+0

你能提出任何智能缓存策略吗? – 2009-11-19 11:13:22

+0

这取决于数据的波动性。如果数据不经常改变,那就积极地缓存它。如果数据可能经常发生变化,那么当数据发生变化时,您可以考虑像SqlDependencyCache一样使其无效 – 2009-11-19 13:37:45

相关问题