首页 > 解决方案 > 在 Apache Ignite 中合并两个持久缓存

问题描述

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

标签: ignite

解决方案


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

最好的方法是两个在不同的集群中启动两个节点,一个使用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());
    }
    

推荐阅读