我在哪里可以了解网站负载平衡?

Where can I learn about website load balancing?

我的初始网站在测试期间不会遇到大量流量。但假设成功,当流量增加时,我将需要实施计划来处理增加的流量,从意识到它到实际处理它。我想现在就开始研究。

但是网络上有大量关于此的信息。我希望有人可以通过 articles/walkthroughs/etc 为我指明正确的方向来帮助我减少信息量,这更实用,更少理论?当然,任何关于该问题的直接指导都将不胜感激。

我目前使用的是托管服务提供商,而不是运行我自己的 IIS 服务器。

很难预测扩展瓶颈在哪里。例如,如果您缺少数据库索引,查询可能 运行 变慢,并且负载平衡您的 Web 服务器也无济于事。

首先,您应该熟悉分析您的应用程序。后端有很多很棒的工具,包括 Visual Studio Profiler, ANTS Profiler and my favorite, dotTrace

接下来(或者可能首先,这无关紧要),您需要分析客户端。 Chrome Developer Tools works great, or you can use the new Firefox Developer。这将向您显示响应时间以及加载资产所需的时间,例如您的 CSS/Javascript/Images/etc。

完成这两项后,您应该清楚自己的问题出在哪里。但总的来说,"easiest" 提高缩放比例的方法是:

  • Bundle/minify/compress your asset files。您可以从页面加载中删除数百 KB。
  • Use a CDN。浏览器在获取资产时可以同时连接的数量受域限制。使用 CDN,您可以在域之间拆分请求,并且对于像 jQuery 这样的流行库,它们更有可能已经被缓存。
  • 适当缓存数据。如果有一些大部分是静态的内容永远不会改变,缓存它而不是每次都查询你的数据库。利用像 Output Caching 这样的东西,你的整个渲染视图都被缓存了。
  • 查看 this post 中的一些清单项目。

完成所有这些步骤后,如果您仍然遇到问题,则可以考虑负载平衡和更好的硬件等问题。否则,您可能会冒着把钱扔掉的风险,而它可能根本不会产生任何影响。

熟悉 Web 应用程序的各个方面真是太好了。然而,负载均衡是其中一项设置起来比较棘手的事情,但如果不对服务器和网络架构有非常全面的了解并且 经验。即使是像 Twitter 和 Facebook 这样的大公司也在努力处理规模问题。这是一个边学边学的过程,并且非常适合个人情况。一个应用程序绝对完美的设置可能对另一个应用程序完全无用。

如果您成功到需要负载平衡,那么您可能也成功到可以聘请基础架构专家来为您处理。除此之外,您还可以利用 Azure 等服务,虽然它们有自己的学习曲线,但几乎可以开箱即用地提供负载平衡。