Mi configuración anterior era un único servidor web y un único servidor de base de datos. Estaba usando el almacenamiento en caché de segundo nivel de nhibernate para almacenar cosas en la memoria caché para evitar que muchas llamadas vayan a la base de datos. Esto ha funcionado muy bien, ya que estaba usando este esta asambleaNhibernate Problemas/preguntas de caché de segundo nivel cuando se mueve de un servidor web único a un entorno de carga de servidor web múltiple
nhibernate.caches.syscache
y ha añadido este código para activar el almacenamiento en caché de segundo nivel (utilizando el proveedor syscache regular):
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();
ahora he migrado hacia un nuevo entorno que tiene múltiples servidores web y estoy tratando de entender las implicaciones de esto (todavía tengo un solo servidor db).
Dado que la memoria caché se almacenaba en el servidor web antes, ahora parecería que tengo 2 cachés paralelos en cada servidor web que a su vez pueden no estar en sintonía y puede causar cambios de fecha, etc.
Lo ¿Es la mejor solución para obtener los beneficios del almacenamiento en caché que tenía antes, pero también aprovechar la flexibilidad del equilibrio de carga del servidor web que se proporciona con esta nueva configuración?
gracias por los enlaces, ya que son excelentes artículos. Todavía tengo algunas preguntas. 1. ¿Dónde debe ejecutarse este caché (en uno de los servidores web o ahora necesito otro servidor para este almacenamiento en caché). Si tiene que ser otra máquina, ¿no va a ser más lento dado que ahora necesito un salto de red para alcanzar la caché? – leora
@ooo, idealmente debería ser otras máquinas con mucha memoria. También puede usar sus servidores web, pero en general no es recomendable. –
¿qué pasa con el punto de tener un salto de red adicional para llegar a la memoria caché (frente a estar en la misma máquina). Además, debería esa nueva máquina solo dedicarse a ser una máquina de caché. – leora