我有一个在单个服务器上运行良好的应用程序。我的客户现在希望将其转移到负载均衡的环境中。这样做会有什么东西可以咬我?
目前我知道
例如,这两个都被描述为here,所以我正在寻找其他的东西。
答案 0 :(得分:2)
您可能遇到的一件事是数据库服务器上的负载增加。如果您实施任何服务器端缓存数据,您将习惯于您的站点针对给定数据集访问数据库一次,缓存数据,然后在缓存超时之前不再访问数据库。对于常用数据,这是一个很好的策略。
在负载均衡的环境中,后续请求可能会转到不同的服务器,并且对于相同的数据,数据库将被命中两次。如果您有超过2台服务器,或者更多。这本身并不坏,但建议你继续关注它。如果数据库正在排队,则可能会取消运行Webfarm的好处。与往常一样,基准测试,配置文件和运行测试。
解决此问题的一种方法是使用粘性会话。这是一种基于路由器的方法。一旦建立了用户会话,来自该用户的所有请求都将路由到同一服务器。这有其缺点,最值得注意的是,负载平衡效率可能会降低,更不用说丢失服务器时的问题了。此外,它只会在您缓存主要是用户特定的数据时提供帮助,例如分页搜索结果,这些数据仅会在短时间内缓存。
另一个解决方案是拥有一个分布式的内存缓存,例如memcached,Velocity或NCache。还有其他一些,但这些是我曾经合作过的。
与上述内容无关的另一件事是:如何处理来自用户的文件上传。许多网站允许用户上传文件。如果以前没有将这些文件保存到中央存储,例如数据库或公共文件共享,则需要这些文件。
答案 1 :(得分:0)
查看this article,其中介绍了有关为负载平衡准备asp.net应用程序的一些提示。