我们当前的工作项目是一个新的MVC网站,它将使用WCF服务,主要通过Web服务访问第三方帐单系统以及用于用户个性化的小型SQL数据库。 WCF服务使用nHibernate作为SQL数据库。网络农场中的nHibernate策略
我们希望实施某种网络服务器场以实现负载平衡以及故障转移和维护。如果有多个WCF服务在运行,我正试图决定处理nHibernate缓存和数据库并发的最佳方式。
有些场景我一直在想......
1)多IIS服务器,一个服务器WCF。通过这种设置,WCF服务器将成为单点故障,但nHibernate缓存或数据库并发将不存在问题。
2)多个IIS服务器,每个服务器都有自己的WCF服务。这消除了单点故障,但是现在,一台机器上的nHibernate不会知道另一台机器所做的数据库更改。
对于数字2的一些解决方案是使用IStatelessSession,所以我们没有做任何缓存,nHibernate总是直接从数据库中获取。这可能是最可行的,因为我们的个性化数据库中只有很少的对象。我也在考虑一个二级缓存,比如memcached或者Velocity,但是对于这个系统来说这可能是过度的。
我在这里看看有没有人有过这样的体系结构的经验,并得到一些解决方案的想法。谢谢!
“但我用nHibernate实现了一个二级查询缓存,并且它工作得很好。”我可以问哪个二级缓存实施你去了,为什么? – 2010-03-20 19:55:07
Memcahced http://memcached.org/ – 2010-03-22 13:53:48