我正在使用hazelcast 3.2.2社区版。
我正在使用hazelcast进行各种测试。我有两个独立的VM,它们运行两个hazelcast实例作为linux服务形成一个集群。在这种情况下,我会将它们称为HAZ-A和HAZ-B。
以下是测试流程(link
在此上下文中表示Physical link
):
1)HAZ-A is up, HAZ-B is up.
2)Link down of HAZ-A, HAZ-B link is up.
执行一些操作说改变用户的密码,因此HAZ-B将有两个版本的用户对象(一个是HAZ-A的备份,说版本1,另一个是更新版本,说版本2)。
3)Link down of HAZ-B, HAZ-A link is already down. Hence links of both HAZ-A and HAZ-B are down.
4)Restore link of HAZ-A. Link is already down of HAZ-B.
执行一些操作,说更改用户密码,此时我收到stale
数据,因为HAZ-A没有一次机会与HAZ-B同步。
所以重点是:
我们可以实现/注入任何会检测的侦听器吗? 界面上/下或链接上/下,检测后我们可以简单 从db?
重新同步数据
答案 0 :(得分:0)
从文档中看,HAZ-A和HAZ-B似乎都会加载来自数据库的值,当它们最终看到对方时,它们将合并
来自第18章
如果正在使用MapStore,那些丢失的分区将从某个数据库重新加载,从而使每个迷你集群都完整。然后,每个迷你集群将重新创建丢失的主分区,并继续在其中存储数据,包括在其他节点上的备份。