java - 在整个hazelcast群集关闭的情况下,如何确保Java客户端继续“工作”

原文 标签 java hibernate hazelcast failover failovercluster

我们目前正在准备榛树广播,以便在接下来的几周内上线。还有一个更大的问题,这困扰着我们的OP部门,如果我们无法修复它,可能会成为演出的障碍。

由于我们正在维护高可用性支付应用程序,因此我们必须在集群不可用的情况下生存。原因可能是:


有人弄乱了hazelcast配置,集群上的映射不断增加,直到我们有了OOM(在测试系统上已经存在)。
网卡/硬件出现问题,暂时中断了与群集的连接
运维人员重新配置了防火墙,无意间阻塞了一些必要的端口。
无论如何


我花了一些时间来寻找好的现有解决方案,但到目前为止唯一的解决方案是增加备份服务器的数量,这当然不能解决问题。

在我当前的测试中,该应用程序完全停止运行,因为在进行某些重试后,客户端与群集断开了连接,并且休眠2级缓存不再起作用。由于我们在整个生态系统中使用榛子广播,这几乎会立即杀死40个Java客户端。

因此,我想知道如何在集群关闭时实现以缓慢的方式运行应用程序。我们当前的方法是切换到ehcache本地缓存,但我认为也应该针对该问题提供hazelcast解决方案?

最佳答案

如果您是我,我会使用LocalSessionFactoryBean并将cacheRegionFactory设置为Spring Bean,如果Hazelcast服务器已关闭,则可以将呼叫委派给Hazelcast或NoCachingRegionFactory

这是合乎需要的,因为Hibernate假定Cache实现始终可用,因此您需要提供自己的CacheRegion代理,该代理可以在运行时决定缓存区域的路由。

相关文章:

java - 在AWS-EC2上运行的SpringBoot应用程序无法连接到MySQL AWS-RDS数据库

java - 如何在Java中的JSONobject的迭代工作中进行迭代

java - 强制SimpleDateFormat解析整个字符串

java - 如何通过Spring数据计算OneToMany元素的项目

java - 使用JPAMetaModelEntityProcessor的优势?

java - Hazelcast缓存数据量

java - 使用Transformer时休眠异常PropertyNotFoundException

java - Spring通过XML Beans-定义注册多个Hibernate-Datasources

java - 无法连接到发现的主机-hazelcast

java - kubernetes中的两个单独的hazelcast集群