gpt4 book ai didi

asp.net-mvc - 从单个 Web 服务器迁移到多个 Web 服务器负载平衡环境时的 Nhibernate 二级缓存问题

转载 作者:行者123 更新时间:2023-12-01 23:30:24 25 4
gpt4 key购买 nike

我之前的设置是一个 Web 服务器和一个数据库服务器。我使用 nhibernate 二级缓存来缓存内容,以避免大量调用数据库。这非常有效,因为我正在使用这个组件

nhibernate.caches.syscache

并添加此代码以打开二级缓存(使用常规 syscache 提供程序):

       return configuration
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<ApplicationMap>().Conventions.Add(typeof(Conventions)))
.ExposeConfiguration(
c => {
c.SetProperty("proxyfactory.factory_class", proxyFactory);
c.SetProperty("cache.provider_class", "NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache");
c.SetProperty("cache.use_second_level_cache", "true");
c.SetProperty("cache.use_query_cache", "true");
c.SetProperty("expiration", "86400");
})
.BuildSessionFactory();

我现在已经迁移到一个拥有多个网络服务器的新环境,我正在尝试理解它的含义(我仍然有一个数据库服务器)。

由于缓存之前存储在网络服务器上,现在看起来我在每个网络服务器上都有 2 个并行缓存,它们本身可能不同步,并可能导致更新过时等。

什么是最佳解决方案,既能获得我之前拥有的缓存优势,又能利用此新设置提供的 Web 服务器负载平衡的弹性?

最佳答案

艾延德 blogged关于 NHibernate 中二级缓存的使用。您将需要在网络场场景中使用分布式缓存。例如 SysCache2(它依赖于 ASP.NET 缓存,可以配置为使用分布式提供程序)或 MemCache。这是an article说明如何配置 memcached。

关于asp.net-mvc - 从单个 Web 服务器迁移到多个 Web 服务器负载平衡环境时的 Nhibernate 二级缓存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6587457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com