可以说我们有两个hazelcast实例:
HazelcastInstance firstInstance = Hazelcast.newHazelcastInstance(new Config());
HazelcastInstance secondInstance = Hazelcast.newHazelcastInstance(new Config());
// Add entries to firstInstance
// Add entries to secondInstance
Run Code Online (Sandbox Code Playgroud)
现在我想删除一切firstInstance,然后add everything from secondInstance to firstInstance.
有没有办法实现这个目标?
首先,按照在代码中示出的两个实例的初始化,两者都属于给出的缺省配置的相同群集组和,集群成员,他们都将包含所有的共享数据.换句话说,您不需要"传输"信息.
如果上述情况属实,那么当您从第一个实例中删除时,您将不会拥有任何数据副本(除了各自的来源).
但是,如果使用将它们绑定到不同群集组的配置初始化实例(请记住,问题中的代码没有这样做),使用Java Map/Collections API(Hazelcast共享)进行"复制"很容易数据结构类型实现):
secondInstance.getMap("myMap").putAll(firstInstance.getMap("myMap"));
firstInstance.getMap("myMap").clear(); //please confirm this.
Run Code Online (Sandbox Code Playgroud)
可以以类似的方式处理分布式列表.此外,请注意此类"批量复制",因为您的成员可能会遇到内存不足错误(当然,这取决于您的数据大小).
有关这方面的更多信息,请访问:http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#preventing-out-of-memory-exceptions
| 归档时间: |
|
| 查看次数: |
806 次 |
| 最近记录: |