在Apache Ignite中合并两个持久性缓存

时间:2018-10-15 16:18:24

标签: ignite

我的应用程序使用Apache Ignite永久存储。几个星期以来,我运行了将持久性数据存储在“ c:\ db1”中的应用程序。后来,我在c:\ db2中运行了具有持久数据的同一应用程序。数据仅存储在此一个服务器节点上。 有没有一种方法可以将数据从db1文件夹合并到db2文件夹?

1 个答案:

答案 0 :(得分:4)

不,你不能,至少不容易。

最好的方法是在两个单独的群集中开始两个节点,一个使用c:\db1,另一个使用c:\db2,然后将数据从一个流到另一个:

  1. 启动两个集群
  2. 启动一个将加载数据的助手应用程序
  3. 在应用程序中,启动两个具有不同配置的客户端节点-一个连接到第一个集群,一个连接到第二个集群
  4. 大致像这样传输数据(未经测试的代码!)

    IgniteCache cache1 = client1.cache("mycache");
    IgniteCache cache2 = client2.cache("mycache");
    for (Cache.Entry e : cache1.query(new ScanQuery())) {
        client2.put(e.getKey(), e.getValue());
    }