仅在集群中的某些节点上使用 Hazelcast IAtomicReference
Hazelcast IAtomicReference on only some nodes in the cluster
我在 Hazelcast 集群中有一个 IAtomicReference。
IAtomicReference<Monitor> ref = ...
当我使用 alterAndGet
更新值时,IFunction<Monitor, Monitor>
被传递给分布式原子引用。
提供的函数可以在集群中的任何 Hazelcast 节点上执行,但我想确保它只在部分节点上执行(总共 8 个节点中的节点 1、2、3 或 4) .
我的理解是 Hazelcast 可能会选择将 IAtomicReference 存储在任何节点上,这是将执行提供的更改功能的节点。所以我想我需要的是指定 IAtomicReference 只能存储在某些节点上。
也许值得一提的是其他节点(5、6、7 和 8)根本不需要访问 IAtomicReference。
我怎样才能做到这一点?
如果依赖分区,则无法完美控制,因为分区可以四处移动。所以在某个时候它可能在成员 1,但稍后它可能在成员 2。
如果您真的想控制任务的去向运行;你可以看看 IExecutorService.submit(task, somemember)
我在 Hazelcast 集群中有一个 IAtomicReference。
IAtomicReference<Monitor> ref = ...
当我使用 alterAndGet
更新值时,IFunction<Monitor, Monitor>
被传递给分布式原子引用。
提供的函数可以在集群中的任何 Hazelcast 节点上执行,但我想确保它只在部分节点上执行(总共 8 个节点中的节点 1、2、3 或 4) .
我的理解是 Hazelcast 可能会选择将 IAtomicReference 存储在任何节点上,这是将执行提供的更改功能的节点。所以我想我需要的是指定 IAtomicReference 只能存储在某些节点上。
也许值得一提的是其他节点(5、6、7 和 8)根本不需要访问 IAtomicReference。
我怎样才能做到这一点?
如果依赖分区,则无法完美控制,因为分区可以四处移动。所以在某个时候它可能在成员 1,但稍后它可能在成员 2。
如果您真的想控制任务的去向运行;你可以看看 IExecutorService.submit(task, somemember)