我有一张Hazelcast地图。
我可以轻松获得partitionService。
PartitionService partitionService = Hazelcast.getPartitionService();
Partition partition = partitionService.getPartition(key);
成员ownerMember = partition.getOwner();
问题:
1)给定一个分区,我可以得到哪个节点是该分区的所有者。是否有任何API可以确定哪些节点是分区的备份节点?
2)如您所知,地图中的值基于其键分配给分区。很容易确定密钥属于哪个分区。我想知道的是:给一个分区它包含哪些键。换句话说,如果我丢失了一些分区,我可以找出丢失的密钥吗?
答案 0 :(得分:2)
1)我认为唯一的方法是通过InternalPartitionService。
public InternalPartitionImpl getPartition(int partitionId)
在InternalPartitionImpl中,您也可以访问备份。
2)这是一个困难的问题。通常存在备份(取决于配置),因此在适当的情况下,数据丢失的可能性应该很小。只有当您同时松开主数据库和备份数据库时,才会出现数据丢失。