2010-08-20 64 views
5

我有一个适用于单一服务器的应用程序。我的客户现在想要将其转移到负载平衡的环境中。在做这件事时哪些东西可能会咬我?移动一个Asp.net应用程序到一个负载平衡的环境

目前我知道的

  • 会话状态,并
  • 机键。

例如,这些都被描述为here,所以我正在寻找额外的东西。

这些similarquestions,但第一个地址的一般负载平衡,我正在寻找一个迁移指南,第二个地址的具体问题。

回答

2

您可能遇到的一件事是您的数据库服务器的负载增加了。如果您实现任何服务器端数据缓存,那么您将习惯于您的站点针对给定数据集对数据库执行一次命中,缓存数据,然后再次访问数据库,直到缓存超时。对于常用数据,这是一个很好的策略。

在负载平衡的环境中,随后的请求可能会转到不同的服务器,并且数据库将会被同样的数据命中两次。或者更多,如果你有超过2台服务器。这本身并不坏,但你最好还是留意一下。如果数据库正在排队,那么运行webfarm的好处可能会被否定。一如既往,基准,配置文件和运行测试。

解决这个问题的方法之一是有粘性会话。这是一个基于路由器的方法。一旦建立了用户会话,来自该用户的所有请求都将路由到同一台服务器。这有一个缺点,最明显的是负载平衡效率可能下降,更不用说当你失去一台服务器时的问题。此外,它只会帮助缓存大多数用户特定的数据,例如分页搜索结果,这些结果只能在短时间内缓存。

另一种解决方案是在内存中分布缓存,如memcached,Velocity或NCache。还有其他的,但这些都是我曾经使用过的。

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

0

请看this article,它描述了一些关于准备asp.net应用程序进行负载均衡的技巧。

+1

不良链接。这就是为什么你不应该留下链接作为答案 – Phil 2016-01-13 22:53:36

相关问题