【问题标题】:Merge two persistent caches in Apache Ignite在 Apache Ignite 中合并两个持久缓存
【发布时间】:2019-03-20 03:01:26
【问题描述】:

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

【问题讨论】:

    标签: ignite


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我接受。但是,这需要我在隔离的集群中同时运行两台服务器。避免关闭集群是有意义的。最后,我更容易将所有缓存项从 db1 导出到磁盘上的序列化文件中,然后再导入到 db2 中。还是谢谢!
    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2022-01-09
    • 2021-07-14
    • 2021-05-23
    • 2018-05-19
    相关资源
    最近更新 更多