【问题标题】:Where can I learn about website load balancing? [closed]我在哪里可以了解网站负载平衡? [关闭]
【发布时间】:2015-07-29 17:01:51
【问题描述】:

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

但网络上有大量关于此的信息。我希望有人可以通过更实用、更不理论的文章/演练/等为我指明正确的方向,从而帮助我减少大量信息?当然,任何关于这个问题的直接指导肯定会受到赞赏。

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

【问题讨论】:

    标签: asp.net-mvc load-balancing


    【解决方案1】:

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

    首先,您应该熟悉分析您的应用程序。后端有很多很棒的工具,包括Visual Studio ProfilerANTS Profiler 和我最喜欢的dotTrace

    接下来(或者可能是第一个,没关系),您将要分析客户端。 Chrome Developer Tools 效果很好,或者您可以使用新的Firefox Developer。这将向您显示响应时间以及加载资产(如 CSS/Javascript/图像/等)所需的时间。

    完成这两项操作后,您应该清楚问题出在哪里。但总的来说,改进缩放的“最简单”的方法是:

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

    完成所有这些步骤后,如果仍有问题,则可以考虑负载平衡和更好的硬件等问题。否则,当它可能根本没有任何区别时,你就有可能把钱扔掉。

    【讨论】:

    • 谢谢!最后一个链接是一个很好的信息来源。回顾您的建议,我相信学习如何分析客户端和应用程序可能是我的首要任务;如果没有您的建议,就不会知道。我的应用程序已经完成了 bundle/minify/etc.,所以这很好。我得到了缓存,虽然还没有启用它。我必须学习CDN。我想在下一条评论中关注最后一个主题。
    • 对我来说仍然模糊的其余部分是我的应用程序实际上是如何分布在多个服务器上的。一旦明确应用程序尽可能合理地运行,最终流量会超过单个服务器处理负载的能力,对吗?当这种情况发生时,这是我必须处理的事情吗?如果是,我该怎么办?或者这是由 IIS 之类的东西自动处理,还是由托管服务提供商以其他方式处理?
    • 是的,没错。最终,您的单个服务器可能无法满足您的所有请求。您如何配置负载平衡完全取决于您的托管服务提供商。 Microsoft Azure(我强烈推荐)提供了他们的Traffic Manager 服务,它为你做了很多工作。您可以轮询到不同的服务器,或者在世界不同的地方提供服务器(例如,欧洲的访问者会被发送到欧洲的服务器),或者负载平衡和故障转移的任意组合。
    • 但一般来说,您需要在主机级别进行一些配置。假设您有 2 台服务器。如果您选择循环,则访客 1 会被定向到服务器 A。访客 2 会被定向到服务器 B,访客 3 会被定向到服务器 A,……以此类推。
    【解决方案2】:

    熟悉 Web 应用程序的各个方面非常棒。然而,负载平衡是设置起来很棘手的事情之一,但如果没有非常全面的服务器和网络架构知识以及经验,几乎不可能设置正确 >。即使是像 Twitter 和 Facebook 这样的大公司也在努力应对规模问题。这是一个边做边学的过程,并且对个人情况极为特殊。一个应用程序的绝对完美设置可能对另一个应用程序完全无用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-06
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 2019-07-17
      • 2010-10-21
      相关资源
      最近更新 更多