如何开发负载平衡友好的Web应用程序

时间:2010-11-01 17:00:44

标签: c# sql-server sql-server-2008 asp.net-mvc-2 load-balancing

开始向我的网站开发实际代码,并想知道我如何开发或设计负载平衡友好的网站。我读了一篇关于stackoverflow的关于可伸缩性的文章,并且选择了答案:“确保在开发应用程序时考虑负载平衡”。我该怎么做?

6 个答案:

答案 0 :(得分:3)

您的决定将归结为环境。如果这是一个待售产品,您将无法控制负载平衡实施。这意味着无法保证用户在会话期间绑定到同一服务器的“粘性会话”。粘性会话允许任何应用程序进行负载平衡,但它们效率不高。

如果您不能保证使用粘性会话实现,请完全避免使用会话状态,或者查看共享会话解决方案。

答案 1 :(得分:2)

1)不要使用静态字段来存储数据,统计数据......

2)谨慎使用会话 - 您仍然可以使用粘性ssessions进行进程,但我不喜欢它。

3)不要依赖服务器的IP

答案 2 :(得分:1)

嗯,一个答案是减少对会话变量的依赖。可以通过会话服务器在服务器之间共享会话变量,但这意味着所有服务器在会话服务器上都有单点故障,并且还会降低性能。

基本上,只是尝试让每个页面尽可能独立和无状态,你会很好。

答案 3 :(得分:1)

对于大多数人来说这可能是显而易见的,但当我们开始使用负载均衡器/多个Web服务器时,实际上是我们环境中的一个问题:不要依赖Web服务器的IP地址。

我们有一个使用交换机和一组内部IP地址的生产环境,包括一个Web服务器(我们的产品通常在封闭的环境中运行,而不是开放的Internet)。如果您有多个Web服务器成为问题。

答案 4 :(得分:1)

确保您拥有开发/ QA环境,您可以在负载均衡的环境中测试软件,并在开发代码时查看代码中的问题,而不是等到部署日。

答案 5 :(得分:0)

要考虑的一件事是使用会话数据来维持状态。

由于您的应用程序后续请求可以由余额行中的其他服务器处理,因此您无法使用InProc模式和StateServer模式。