何时使用负载平衡?

Dan*_*rly 6 windows asp.net load-balancing

我刚刚进入Web开发中更复杂的部分.这可能不是最好的地方.但是,什么时候最好为Web项目获得负载平衡?我知道这取决于良好的设计/糟糕的设计,你可以访问一个网站有多少用户,而不会真正影响性能.但是,我打算编写一个可能有很多用户的新项目,我想知道我是否应该考虑负载均衡.意见欢迎; 提前致谢!

我不应该认为该项目很可能是使用mongodb或pgsql后端的asp.net(webforms或mvc尚未决定)(再次仍在决定).

Aar*_*ron 7

这是针对电子商务网站的吗?如果是这样,那么真正要问的问题是“网站每宕机一小时,您损失多少钱?” 如果这个数字很大,那么我会优先考虑负载平衡。

我所看到的影响这一点的更重要的架构决策之一是会话变量的使用。如果您的用户在访问期间最终在不同的服务器上,您需要能够提供无缝体验。会话变量不会从服务器传输到服务器,所以我会避免使用它们。

我在工作中支持这样的解决方案。我们在三个 Windows 2k8 服务器(由两个主要/辅助 SQL Server 2008 数据库支持)上运行四个(以前是八个).NET 电子商务网站,每天处理大约 1300 个(组合)订单。每个站点都是负载平衡的,并通过保持活动保持“在场中”。这样做的好处是,我们可以关闭一台服务器进行维护,而用户并没有真正注意到任何事情。当我们把它带回来时,我们重新启用我们的复制服务,我们的更改很快就会被推送到其他两台服务器。

所以是的,我建议给出一个类似的解决方案。


usr*_*usr 6

负载平衡也可以是高可用性的一种形式.如果您的Web服务器出现故障怎么办?更换它可能需要很长时间.

通常,当您需要考虑吞吐量时,您已经很富有,因为您拥有大量用户.

Stackoverflow每月为10万个独立用户提供一些服务器(大约6个).如果您在8个小时内每秒不断产生10个HTTP响应,请考虑每天有多少请求:10*3600*8 =每天288000页的展示次数.你很快就不会有那么多用户.

如果这样做,您可以将应用程序优化为每秒20个请求和CPU核心,这意味着您可以在商用服务器上获得每秒80个请求.那是很多.

稍后添加负载均衡器通常很容易.LB可以使用cookie标记每个用户,以便将其固定到一个特定目标.你的应用程序不会注意到差异.通常.

  • @DanielCasserly:我不认为发挥作用的是用户数量,而是平均应用响应时间。 (2认同)