我正在将一个站点从单个服务器移动到一个由负载均衡器后面的三个web服务器组成的服务器场。处理会话管理似乎很简单--只需在负载均衡器上使会话“粘滞”即可(我们评估了基于SQL的会话管理,但为了提高效率,决定继续使用InProc会话管理)。
但是,我们也使用保存在应用程序空间中的相当大的配置对象(例如ApplicationObjName)。由于配置对象是从内存加载的,所以在有人更改配置之前,我们不会有任何问题。此时,宿主服务器上的应用程序将发生更改,数据库也将发生更改。但是,其他两个服务器不会有更改。我们已经讨论过“每分钟一次”的轮询规则(例如,在新会话中),将信息保留在会话中(效率不高),等等。所有这些都有严重的缺点。我想知道其他人是做什么的。是否可以将应用程序空间保留在SQL Server上,而将会话空间保留在inproc上?任何关于如何处理这个问题的帮助或见解都将不胜感激!
发布于 2012-03-15 01:18:30
Application[]将始终是基于本地内存的,所以无论您要做什么,都需要进行一些代码更改。所以把它放在其他地方,比如分布式缓存、AppFabric、NCache、memcached.net等。当有人更改配置时,更新缓存,当您需要读取从缓存读取的设置时。传播/同步由缓存本身负责。
发布于 2012-05-09 20:33:38
我们目前决定使用NCache,因为我们有4个web服务器用于我们的web场。这个第三方缓存工具可以完美地与负载均衡器一起工作,并且很容易配置(只有Express版是免费的。对于专业版和企业版,只有Developer Machine是免费的)。它也是非常快速和稳定的。您必须在每台服务器上设置NChache,并将负载均衡器设置为与所有服务器一起工作。希望能有所帮助。
https://stackoverflow.com/questions/9705866
复制相似问题