我想在 Hazelcast 上使用 PN 计数器来维护库存编号以进行快速查找,但同时我也想不时清除它们并将它们重新加载为“正确”。 Hazelcast 允许通过分配名称来访问 PN 计数器,但进程无法清除集群中的所有 PN 计数器,因为似乎没有客户端 API 来获取集群中所有 PN 计数器的列表。< /p>
如何清除集群中的所有 PN 计数器并重新开始?
答案 0 :(得分:3)
您可以使用 getDistributedObjects API,过滤 PNCounters 并销毁它们。
HazelcastInstance client = HazelcastClient.newHazelcastClient();
client.getDistributedObjects()
.stream()
.filter(distributedObject -> distributedObject instanceof PNCounter)
.forEach(DistributedObject::destroy);
正如链接 API 的文档所暗示的那样,分布式对象列表是在尽最大努力的基础上返回的,但在大多数情况下它应该可以正常工作。