Объедините два постоянных кэша в Apache Ignite - PullRequest
0 голосов
/ 15 октября 2018

Мое приложение использует постоянное хранилище Apache Ignite.В течение нескольких недель я запускал приложение, хранящее постоянные данные, скажем, «c: \ db1».Позже я запустил то же приложение с постоянными данными в c: \ db2.Данные были сохранены только на этом одном узле сервера.Есть ли способ объединить данные из папки db1 в папку db2?

1 Ответ

0 голосов
/ 15 октября 2018

Нет, вы не можете, по крайней мере, нелегко.

Наилучшим способом было бы два запуска двух узлов в отдельных кластерах, один с использованием 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());
    }
    
...