Mon installation précédente était un serveur Web unique et un serveur de base de données unique. J'utilisais la mise en cache de niveau 2 de nhibernate pour mettre en cache des choses afin d'éviter que beaucoup d'appels ne soient envoyés à la base de données. Cela a beaucoup travaillé comme j'utilisais ce cet ensembleNhibernate Problèmes/questions de mise en cache de second niveau lors du passage d'un serveur Web unique à un environnement à charge équilibrée de plusieurs serveurs Web
nhibernate.caches.syscache
et a ajouté ce code pour activer la deuxième mise en cache de niveau (en utilisant le fournisseur de syscache régulière):
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();
J'ai maintenant migré vers un nouvel environnement qui a plusieurs serveurs Web et j'essaye de comprendre les implications de ceci (j'ai toujours un serveur de DB simple).
Depuis le cache est stocké sur le serveur Web avant, maintenant il semblerait que j'ai 2 caches parallèles sur chaque serveur Web qui eux-mêmes ne peuvent être synchronisés et peut entraîner de mises à jour de date, etc.
Qu'est-ce que est la meilleure solution pour obtenir les avantages de la mise en cache que j'avais avant, mais aussi tirer parti de la résilience de l'équilibrage de la charge du serveur Web qui est fourni avec cette nouvelle configuration?
merci pour les liens car ce sont des articles fantastiques. J'ai encore quelques questions. 1. Où ce cache devrait-il fonctionner (sur l'un des serveurs web ou ai-je besoin d'un autre serveur pour cette mise en cache)? Si cela doit être une autre machine, cela ne va-t-il pas être plus lent étant donné que j'ai maintenant besoin d'un saut de réseau pour atteindre le cache? – leora
@ooo, idéalement, il devrait être une autre machine avec beaucoup de mémoire. Vous pouvez également utiliser vos serveurs Web, mais en général, ce n'est pas recommandé. –
Qu'en est-il du point d'avoir un saut de réseau supplémentaire pour accéder au cache (par opposition à être sur la même machine). Aussi, cette nouvelle machine devrait-elle être simplement dédiée à être une machine cache? – leora