将Asp.net应用程序移动到负载平衡的环境中
我有一个在单个服务器上运行良好的应用程序.我的客户现在希望将其转移到负载均衡的环境中.这样做时哪些事情可能会让我感到困惑?
目前我知道 >会话状态,和 例如,这两个都被描述为here,所以我正在寻找除此之外的其他东西. 这些similar questions,但第一个解决了一般的负载平衡,我正在寻找迁移指南,第二个解决了一个特定的问题. 解决方法
您可能遇到的一件事是数据库服务器上的负载增加.如果您实施任何服务器端缓存数据,您将习惯于您的站点针对给定数据集访问数据库一次,缓存数据,然后在缓存超时之前不再访问数据库.对于常用数据,这是一个很好的策略.
在负载平衡的环境中,后续请求可能会转到不同的服务器,并且对于相同的数据,数据库将被命中两次.如果您有超过2台服务器,或者更多.这本身并不坏,但建议你继续关注它.如果数据库正在排队,则可能会取消运行Webfarm的好处.一如既往,基准测试,配置文件和运行测试. 解决这个问题的一种方法是使用粘性会话.这是一种基于路由器的方法.一旦建立了用户会话,来自该用户的所有请求都将路由到同一服务器.这有其缺点,最值得注意的是,负载平衡效率可能会降低,更不用说丢失服务器时的问题了.此外,它仅在您缓存主要用户特定数据(例如分页搜索结果)时才有用,这些数据仅在短时间内缓存. 另一种解决方案是具有分布式内存缓存,例如memcached,Velocity或NCache.还有其他一些,但这些是我合作过的. 要注意的另一件事与上述无关:您如何处理来自用户的文件上传.许多站点允许用户上载文件.如果以前没有将这些文件保存到中央存储,例如数据库或公共文件共享,则需要这些文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- C#之Form表单认证
- 单元测试传统ASP.NET Webforms应用程序
- ASP.Net相当于PHP的file_get_contents(‘php:// input’);
- asp.net – 客户端IP地址
- 解决asp.net上传文件超过了最大请求长度的问题
- asp.net-mvc-3 – 如何格式化MVC Route参数?
- asp.net-mvc-3 – 列中的MVC3 WebGrid自定义文本
- asp.net-core – 如何使用StructureMap注册表在单独的项目中
- 为什么每个人都在ASP.NET Webforms中依赖注入是困难的,当Pa
- asp.net-mvc – 使用DI ninject抛出错误的自定义角色提供程