处理NHibernate二级缓存的故障转移

时间:2012-11-05 12:05:52

标签: nhibernate cache-failover

我们的场景是这样的 - 对于我们的中央Web服务,我们目前正在使用分布式缓存解决方案,我们的NHibernate实现用于二级缓存。

有时,我们的缓存服务器出现故障,因此我们在Web服务中收到NHibernate异常,基于此我们执行以下操作:
1.如果它是一个与缓存服务器相关的异常,我们将进入故障转移模式并重建我们的NHibernate会话工厂,而不需要二级缓存支持 2.向我们的网络服务的客户提出不可恢复的例外

当流量很高时,我们会在我们的网络服务客户端上获得许多此类例外。

展望未来我们希望确保不会向客户端抛出任何异常,因此我们正在考虑执行以下操作:
1.保留NHibernate会话工厂的2个实例 - 一个支持二级缓存,一个不支持 2.在缓存服务器异常上,使用不带第二级缓存支持的Factory重试请求,直到缓存服务器重新联机,然后使用具有二级缓存支持的工厂恢复

所以,基本上我们会在两个NHibernate Session Factories之间切换。

如果有人可以,那会很棒:
1.提供有关处理NHibernate二级缓存的故障转移的任何指示 2.指出在运行中切换会话工厂的任何缺陷

感谢。

0 个答案:

没有答案