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

Get all PN Counters in a hazelcast cluster

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

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

你可以利用getDistributedObjects API,过滤PNCounter并销毁它们。

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

正如链接 API 的文档所建议的,分布式对象列表是在尽力而为的基础上返回的,但它在大多数情况下应该工作得很好。