asp.net - 是否有专门针对拥有大量受众的网站的可扩展性最佳实践?

标签 asp.net architecture web-applications scalability

虽然这个问题之前已在各种情况下被问过,但我找不到任何专门针对针对大量受众(例如数十万甚至数百万用户规模)的网站的信息。

在编写针对较小受众的网站(例如处理几到几千个用户的 Intranet 托管数据驱动网站)时,我们只倾向于在项目预算/截止日期(即开发人员成本)范围内遵循最佳实践,推出时间表和可维护性对我们如何编码的影响比我们通常希望的要大得多。

有些事情(在某种程度上)也可以忽略不计,例如交付时间、图像压缩/大小、带宽,因为 LAN 托管应用程序的性质往往意味着相对较小的财务成本(在合理的范围内) )我们不需要担心太多。

但是,当希望瞄准更广泛的受众时,例如(希望)数百万用户的受众:

  • 是否有任何不再需要担心的最佳实践(即,受众越多,就越可以忽略不计)?
  • 是否有任何做法需要更加严格遵守?
  • 此外,是否有任何做法只有在您的受众达到一定临界量时才真正发挥作用(该临界量是多少)?即在专用网络上应用不会让您担心的人为约束

到目前为止我遇到的例子是:

  • 在 Google 上托管 jQuery 等代码库,因为它是从 Google 的 CDN 提供的,并且比您自己的服务器提供的速度要快得多。这还有助于降低网站交付的带宽成本。
  • 在 CDN 上托管图像的原因与在其他地方托管 javascript 代码的原因相同。

最佳答案

我想这取决于压力“三角”的目标:CAP(一致性、可用性和分区容错性)。例如。当面临导致“P”的网络中断时,一个人只能拥有这么多“C”。

如今,重点似乎更多地放在提供“良好的用户体验”上,这似乎取决于“取得结果的时间”(例如,在用户桌面上拥有一个完整的网页):这转化为投资(其中包括其他东西)“A”和“P”侧比“C”侧更多。

更具体地说:花一些时间来决定何时为用户的表示层执行数据聚合,例如在重新计算要推送的另一个 View 之前,我可以在更长的时间内聚合这些数据吗?

当然,我只是触及了问题的表面。

关于asp.net - 是否有专门针对拥有大量受众的网站的可扩展性最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561865/

相关文章:

c# - ASP.net WebForms - 在标记中使用 GetRouteUrl

architecture - 关于i7的分支预测

c# - 创建新库或项目时如何设置命名空间?

c# - 如何在 ASP.NET 中使用插件架构?

.NET 应用程序域和 ASP.NET

web-applications - ios 7 电话 : links not working when web app opened from home screen

python - Python 上的实时 Web 应用程序

php - 在 Web 应用程序中查找瓶颈的方法有哪些?

c# - 如何访问 Global.ASAX 中 Application_Error 事件的对象属性?

c++ - 避免头文件的循环依赖