首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该为web应用程序的10,000个并发用户实施哪种.net体系结构

我应该为web应用程序的10,000个并发用户实施哪种.net体系结构
EN

Stack Overflow用户
提问于 2009-11-18 15:47:39
回答 3查看 2.8K关注 0票数 5

我需要为任务委派创建一个web应用程序,监控并为组织生成报告。

我在考虑ASP.Net和MVC应该是支持这么多并发用户的架构。有没有其他我应该寻找的更好的架构?

需要什么样的服务器配置才能容纳此应用程序?在启动此应用程序之前,我如何测试这么多连接的用户,是否有免费/经济的测试工具可用?

提前谢谢。anil

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-19 19:14:35

MVC和webforms的选择与应用程序处理负载的能力几乎没有关系。你的问题是读/写数据库,无论你选择哪一个都不会改变。提高处理负载能力的想法:

首先也是最重要的:绝对最小的是两个服务器: web服务器和DB服务器,它们永远不应该在同一个机器上运行。

DB:对数据库的有效查询,数据库中的索引,对命中次数较多的表进行反规范化,缓存,缓存缓存,在集群中运行数据库,哦,我提到缓存了吗?

处理:如果您需要繁重的处理,请在web服务中执行此操作,这些web服务可以在独立于web服务器的计算机上运行,以便您可以向外扩展(购买更多服务器,并在需要时将其置于负载均衡器之后)

MachineKey :避免需要服务器亲和性(因此,在任何给定时间,哪个web服务器为给定用户提供服务都无关紧要)这意味着使用DB或StateServer来存储会话,在服务器上同步web。

使用MVC或不使用MVC的决定对处理10k并发用户的能力没有影响,但是,如果您希望站点是可单元测试的,那么使用MVC是一个巨大的好处

请记住:应用程序要么是可测试的,要么是可恶的,由您自己选择

票数 5
EN

Stack Overflow用户

发布于 2009-11-19 04:19:53

缓存:-)智能缓存策略可以让一台服务器走很长一段路...除此之外,你还需要找出你的瓶颈在哪里。如果您的应用程序是数据库密集型应用程序,那么您需要考虑通过集群或分片来扩展数据库。如果您希望您的web服务器成为瓶颈(例如,如果您正在进行大量处理,如图像处理或其他),那么您可以放置一个负载均衡器来在您的网络场中的N个服务器之间分发请求。

票数 2
EN

Stack Overflow用户

发布于 2009-11-19 04:18:34

对于如此大的设置,我强烈建议使用分布式内存缓存提供程序,使其位于数据库之上。我还真的建议使用内置内存缓存支持的对象关系映射,比如NHibernate,因为在这种规模的应用程序中,最大的瓶颈肯定是数据库。

在这种情况下,您很可能需要一个网络场,如果一台服务器目前足够强大,那么在不久的将来,您很可能会长出一个单独的盒子,这就是为什么首先在分布式缓存中进行架构很重要,这样您就可以扩展您的场,而不必重新架构整个系统。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1754271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档