将Asp.net应用程序移动到负载平衡的环境中

时间:2010-08-20 14:45:03

标签: asp.net load-balancing

我有一个在单个服务器上运行良好的应用程序。我的客户现在希望将其转移到负载均衡的环境中。这样做会有什么东西可以咬我?

目前我知道

  • 会话状态和
  • 机器密钥。

例如,这两个都被描述为here,所以我正在寻找其他的东西。

这些similar questions,但第一个解决了一般的负载均衡问题,我正在寻找迁移指南,第二个解决了特定问题。

2 个答案:

答案 0 :(得分:2)

您可能遇到的一件事是数据库服务器上的负载增加。如果您实施任何服务器端缓存数据,您将习惯于您的站点针对给定数据集访问数据库一次,缓存数据,然后在缓存超时之前不再访问数据库。对于常用数据,这是一个很好的策略。

在负载均衡的环境中,后续请求可能会转到不同的服务器,并且对于相同的数据,数据库将被命中两次。如果您有超过2台服务器,或者更多。这本身并不坏,但建议你继续关注它。如果数据库正在排队,则可能会取消运行Webfarm的好处。与往常一样,基准测试,配置文件和运行测试。

解决此问题的一种方法是使用粘性会话。这是一种基于路由器的方法。一旦建立了用户会话,来自该用户的所有请求都将路由到同一服务器。这有其缺点,最值得注意的是,负载平衡效率可能会降低,更不用说丢失服务器时的问题了。此外,它只会在您缓存主要是用户特定的数据时提供帮助,例如分页搜索结果,这些数据仅会在短时间内缓存。

另一个解决方案是拥有一个分布式的内存缓存,例如memcached,Velocity或NCache。还有其他一些,但这些是我曾经合作过的。

与上述内容无关的另一件事是:如何处理来自用户的文件上传。许多网站允许用户上传文件。如果以前没有将这些文件保存到中央存储,例如数据库或公共文件共享,则需要这些文件。

答案 1 :(得分:0)

查看this article,其中介绍了有关为负载平衡准备asp.net应用程序的一些提示。