我们目前正准备在接下来的几周内投入使用。还有一个更大的问题,那就是我们的OP部门会遇到麻烦,如果我们无法修复它,可能会成为一个可能的显示器。
由于我们维护的是高可用性支付应用程序,因此如果群集不可用,我们必须生存。原因可能是:
我花了一些时间寻找现有的解决方案,但到目前为止唯一的解决方案是增加备份服务器的数量,这当然无法解决问题。
在我当前的测试期间,应用程序完全停止工作,因为在某些重试后,客户端断开与群集的连接,并且休眠的第二级缓存不再起作用。由于我们在整个生态系统中使用hazelcast,因此几乎可以立即杀死40个Java客户端。
因此,我想知道当群集关闭时,我们如何才能实现应用程序仍以较慢的方式工作。我们当前的方法是切换到ehcache本地缓存,但我认为应该有针对该问题的淡化解决方案?
答案 0 :(得分:2)
如果我是你,我会使用LocalSessionFactoryBean并将cacheRegionFactory设置为Spring Bean,如果Hazelcast服务器关闭,可以将呼叫委托给Hazelcast或NoCachingRegionFactory
这是可取的,因为Hibernate假定Cache实现始终可用,因此您需要提供自己的CacheRegion代理,以便在运行时决定缓存区域路由。