【问题标题】:What's the best architecture for a medium-sized, high traffic web site? [closed]什么是中型、高流量网站的最佳架构? [关闭]
【发布时间】:2012-11-01 06:01:33
【问题描述】:

我正在开始一个新项目(非公司),我想知道现在如何成为一个伟大的架构。

我现在打算使用:

  • ASP.NET MVC 4.0
  • SQL Server 2008 或 2012
  • .NET 4.5 下的 EF 5.0,带有 Dapper
  • Repository模式的实现(这个http://code.google.com/p/ef4prs/
  • DI 与Autofac
  • 自动映射器
  • WCF 服务层(用于未来的移动实施)

检查流程(如果有问题请纠正我):Controller 调用 ApplicationService,调用 BusinessLayer,调用 DAL 与 UnitWork/Repository,通过 EFDapper 执行查询(从 Repository 的特定方法查询 Dapper 是否正确?),然后是结果自动映射到 DTO 并返回到 Controller,将所需内容复制到 ViewModel 并返回 View。

这里的问题是性能,正如我所说,该网站计划有高流量。 在这种情况下,上面列出的任何项目都会降低性能吗?还是这种组合泄漏了更多东西? 我应该丢弃 EF,只使用 Dapper 吗? 恐怕服务层会因为流量而降低性能。

最后,我不知道这种架构是不必要的,还是很差。

这是很多问题,但重点是了解适合中型网站的出色而不是“过度架构”的解决方案。

对不起英语

【问题讨论】:

  • 您需要更具体地了解“高流量”。数万/数十万、数百万、数千万等浏览量/天?什么样的硬件/云资源会托管这个?
  • 看起来更像是serverfault.com 之类的问题。服务器故障适用于需要以专业身份管理计算机系统的专家解答的信息技术专业人员。
  • @BrunoVieira 他在问什么软件堆栈是合适的,这可能比 serverfault 更适合它。
  • “最佳”将是一个见仁见智的问题,也许可以改写您的问题以关注每种技术的性能影响
  • @R0MANARMY,现在重要的是该软件已准备好每天进行数十万次观看。硬件不是我的事,以后会根据需要进行更改(可能是云)。

标签: asp.net-mvc performance architecture


【解决方案1】:

您的问题相当主观,因为有许多可能的配置都可以正常工作。不过我可以给你一些建议。

将 EF 与 Dapper 混合和匹配可能有点雷区。理论上,您应该能够使用 Dapper 获取对象,然后将 Attach 它们发送到 DbContext 并更新它们。但是,根据我的经验,这通常不起作用。我们从 EF 开始,然后慢慢转移到 Dapper 进行快速查询,我认为我们可以继续使用 EF 进行更新/插入,但我最终推出了自己的插入/更新跟踪(非常简单),因此我们正在慢慢淘汰EF的使用。

事后看来,我建议选择一个并坚持下去。 EF 在 .NET 4.5 下应该相当快。虽然不如 Dapper 快,所以纯粹的 Dapper 路线也不错。

您可以考虑的其他技术:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多