获取 hazelcast 集群中的所有 PN 计数器

时间:2021-08-01 15:14:17

标签: hazelcast

我想在 Hazelcast 上使用 PN 计数器来维护库存编号以进行快速查找,但同时我也想不时清除它们并将它们重新加载为“正确”。 Hazelcast 允许通过分配名称来访问 PN 计数器,但进程无法清除集群中的所有 PN 计数器,因为似乎没有客户端 API 来获取集群中所有 PN 计数器的列表。< /p>

如何清除集群中的所有 PN 计数器并重新开始?

1 个答案:

答案 0 :(得分:3)

您可以使用 getDistributedObjects API,过滤 PNCounters 并销毁它们。

HazelcastInstance client = HazelcastClient.newHazelcastClient();
client.getDistributedObjects()
        .stream()
        .filter(distributedObject -> distributedObject instanceof PNCounter)
        .forEach(DistributedObject::destroy);

正如链接 API 的文档所暗示的那样,分布式对象列表是在尽最大努力的基础上返回的,但在大多数情况下它应该可以正常工作。