负载均衡Web服务器:优点,缺点,主流?

时间:2010-09-16 14:18:32

标签: webserver load-balancing

我对负载平衡的问题是:

  1. 为什么要完全平衡Web服务器而不是升级到新服务器?
  2. 通常的做法是进行负载均衡设置,无论是Web服务器还是sql服务器?
  3. 负载均衡有什么缺点吗?
  4. 如何在两台服务器上维护用户信息。如果会话期间的信息本地存储在一台服务器上,其他服务器将如何访问它?
  5. 或者,如果您知道有任何好的参考资料可以回答这些问题,那也很好。

2 个答案:

答案 0 :(得分:0)

  1. 有时,地方,您拥有的负载超过单个服务器可以处理的负载。此外,负载平衡为您提供故障转移保护等。如果您有两台服务器,在站点停止响应之前,两者都必须关闭等等。还有其他一些原因。
  2. 是的,负载均衡是一种非常常见的做法,您将在Web服务器上看到它,在数据库端,您通常会看到SQL Server Clustering / MIrroring或其他设置以获得冗余和更强的处理能力。但是,您必须处于需要额外电源或需要冗余的情况下。
  3. 负载平衡会引入问题,您必须注意一些事项。您有更复杂的管理方案,但最终,负载平衡是扩展过去单一硬件功能以及在很多情况下实现真正自动冗余的唯一扩展方式。
  4. 为此,我假设您正在谈论ASP.NET,这是我之前提到的“棘手”问题。使用ASP.NET,您可以将会话状态从InProc(默认)更改为SQL Server状态服务,或者您可以在负载均衡器上使用Sticky Sessions,或者您可以简单地避免/不在您的应用程序中使用会话,或者您可以使用第三个党政管理服务。

答案 1 :(得分:0)

  1. 有时您的服务器功能非常强大,但无法满足您的性能要求。你希望它的工作速度提高4倍......一个选项可能是增加CPU速度4倍,硬盘速度4倍等等...... 4次......这可能需要花费4 * 4 = 16倍的价格。一个选项可能是购买额外的4台服务器(总共有5台,它们会在4.1-4.6倍的情况下提高整体性能)。而且,更高的可用性 - 是一个很好的好处。

  2. 我不会说这是一种非常普遍的做法。你不是经常需要它。通常“这是一个有点贵的玩具”:)。对于SQL方面,我建议使用SQL Cluster而不是负载平衡。

  3. 在实现负载平衡时,我会说很多事情需要记住。从会话存储,单个缓存存储开始,......您将进入更复杂的业务流程:检查“用户”是否不更新其他用户同时更改的信息等...

  4. 与任何类型的数据类似,您需要拥有唯一的数据源。对于会话,您需要有一个“会话提供程序”,对于“服务器场”中的每个服务器,它将解码“会话ID”并为系统提供会话数据。正如Mitchel已经说过,ASP.NET为此提供了开箱即用的解决方案。

  5. 参考文献,我将从谈论编写可伸缩应用程序的内容开始阅读。

    一般参考文献很少: http://loadbalancing.servers.co.uk/benefits http://en.wikipedia.org/wiki/Load_balancing_(computing) http://refcardz.dzone.com/refcardz/scalability

    从(.NET)开发人员的角度来看,一个好的解读是: “提高.NET应用程序性能和可伸缩性”,Microsoft,Pattern& Practice。