使 ASP.NET MVC 应用程序 Web 场做好准备的最有效方法是什么。
最重要的是共享当前用户的信息(上下文)和(不太重要)缓存的对象,例如查找项目(州、街道类型、县等)。
我听说过/读过 MemCache,但还没有看到关于如何实现和测试它的简单适用方法(文档)。
请求上下文
任何到达网络场的请求都会由可用的 IIS 服务器提供服务。上下文在那里创建,整个请求由同一服务器提供服务。所以上下文应该不是问题。请求是无状态执行管道,因此它不需要以任何方式与其他服务器共享数据。从头到尾都将由同一台机器提供服务。
用户信息从 cookie 中读取,并由服务该请求的服务器进行处理。这取决于您是否将完整的用户对象缓存在某处。
Session
如果你使用TempData
字典你应该知道它存储在里面Session
字典。在服务器场中,这意味着您应该使用 InProc 会话以外的其他方式,因为它们不在服务器场中的 IIS 服务器之间共享。您应该配置使用数据库或其他(状态服务器等)的其他会话管理器。
Cache
当谈到缓存时,情况就不同了。为了使其尽可能高效,还应该提供缓存服务。默认情况下不是。但看看缓存,它几乎意味着当没有缓存时,应该读取它并将其存储在缓存中。因此,如果特定服务器场服务器没有某些缓存对象,它将创建它。随着时间的推移,它们都会缓存一些共享的公开使用的数据。
或者......你可以使用类似的库内存缓存(正如您提到的)并利用共享缓存。网上有几个如何使用它的示例。
但是,如果没有其他问题,这些解决方案都会带来一些额外的开销(例如网络和第三进程处理以及数据获取等)。因此,默认缓存是最快的,如果您明确需要共享缓存,请决定使用一个。除非确实必要,否则不要共享缓存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)