我们当前的工作项目是一个新的MVC网站,它将主要使用WCF服务通过Web服务访问第三方计费系统,以及用于个性化用户的小型sql数据库. WCF服务将nHibernate用于sql数据库.
我们希望实现某种Web场以实现负载平衡以及故障转移和维护.如果有多个WCF服务在运行,我正在尝试决定处理nHibernate缓存和数据库并发的最佳方法.
我一直在考虑的一些场景……
1)多个IIS服务器,一个WCF服务器.使用此设置,WCF服务器将是单点故障,但nHibernate缓存或数据库并发性不会出现问题.
2)多个IIS服务器,每个服务器都有自己的WCF服务.这消除了单点故障,但现在一台机器上的nHibernate不知道另一台机器完成的数据库更改.
对于数字2的一些解决方案是使用IStatelessSession,因此我们不进行任何缓存,并且nHibernate总是直接从数据库中获取.这可能是最可行的,因为我们的个性化数据库中只有很少的对象.我也在考虑二级缓存,例如memcached或VeLocity,但这对于这个系统来说可能有些过分.
我把它放在那里,看看是否有人有这种架构的经验,并获得一些解决方案的想法.谢谢!