我有一个Hazelcast集群,其中包含2个实例(从Docker容器运行)和一个复制映射,该映射在第一个实例的初始化时填充。一切都很好,很快。最近我经历了几次以下情况:
我最终得到了一个健康的集群,但实际上集群只包含部分数据,这些数据在实例2关闭之前已同步。至少花了一天时间观察这种不良状态并刷新数据。
此问题发生在多个环境中(test,prod)。重新启动实例的原因未知。我的Hazelcast版本:3.7.2。 我的假设也是如此,3个或更多个实例也可能发生同样的概率。
在这种情况下,最佳做法是什么?谢谢!
答案 0 :(得分:1)
如果在新实例获得状态之前重新启动第二个实例,则无法期望恢复整个数据。
答案 1 :(得分:0)
缓存只是缓存数据。试着设计你的软件,猜测缓存可能无效或者一直丢失数据。当数据没有被命中时,hazelcast中还有一个从db加载数据的机制。但这是不推荐,因为它耦合缓存和db.My提议是当数据丢失时,从应用程序中的db加载。