“如何确保java客户端继续”;“工作”;以防整个hazelcast集群停机
我们目前正在为hazelcast在未来几周的直播做准备。还有一个更大的问题,它困扰着我们的运营部门,如果我们无法解决它,它可能会成为一个阻碍演出的因素 因为我们维护的是一个高可用性支付应用程序,所以我们必须在集群不可用的情况下生存下来。原因可能是:“如何确保java客户端继续”;“工作”;以防整个hazelcast集群停机,java,hibernate,hazelcast,failover,failovercluster,Java,Hibernate,Hazelcast,Failover,Failovercluster,我们目前正在为hazelcast在未来几周的直播做准备。还有一个更大的问题,它困扰着我们的运营部门,如果我们无法解决它,它可能会成为一个阻碍演出的因素 因为我们维护的是一个高可用性支付应用程序,所以我们必须在集群不可用的情况下生存下来。原因可能是: 有人把hazelcast配置搞砸了,集群上的地图会增加,直到我们有了OOM(测试系统上有这个) 网卡/硬件存在一些问题,暂时中断了与群集的连接 OPs人员重新配置了防火墙,意外地封锁了一些必要的端口,不管怎样 还有别的吗 我花了一些时间寻找好的现有解
因此,我想知道当集群关闭时,我们如何才能实现应用程序仍然以较慢的方式工作。我们目前的方法是切换到ehcache本地缓存,但我认为应该有hazelcast解决方案来解决这个问题 如果我是你,我会使用a并将设置为springbean,如果Hazelcast服务器关闭,它可以将调用委托给Hazelcast或a
这是可取的,因为Hibernate假设缓存实现总是可用的,所以您需要提供自己的CacheRegion代理,它可以在运行时决定缓存区域路由。也许我的想法是错误的,但我同意。RegionFactory仅用于构建不同的区域(实体、集合、查询结果、时间映射),hibernate在启动和关闭SessionFactoryImpl时使用它。区域构建完成后,hibernate迭代区域并获取区域访问策略。这意味着,仅仅替换区域并不能解决问题,因为hibernate仍然会在内部使用“错误”的访问策略来访问不同的区域。在我们当前的方法中,我们构建了一个包装器,它同时使用ehcache和hazelcast区域,并在集群关闭时切换,但这相当脏,我真的很想只使用hazelcast。我不认为它脏。任何其他实现也可能失败。缓存提供程序上的内存或磁盘空间可能不足,异常将传播到应用程序。因此,回退方法是实现高可用性的最佳方法。@u6f6o我也面临同样的问题。你能解决这个问题吗。您能分享一个示例代码吗?另外,我认为LocalSessionFactoryBean不能与SpringDataJPA一起工作,因为这需要EntityManagerFactory。。。