Как настроить Apache Ignite с несколькими конфигурационными файлами

#ignite #gridgain

#ignite #gridgain

Вопрос:

Мне нужно настроить Ignite с несколькими кэшами с разными именами в одном кластере, используя Spring XML. Цель состоит в том, чтобы в конечном итоге иметь один файл jar для каждого кэша для простоты развертывания.

  • Используйте веб-консоль GridGain для генерации кода конфигурации кластера для каждого кэша. Итак, например, я создаю два jar для двух разных кэшей, в каждом jar будет XML-файл для конфигураций кэша.

  • Скопировал два jar-файла в каталог GridGain / libs.

  • Запустил Ignite с bin/ignite.sh . Насколько я понимаю, Ignite должен автоматически загружать два кэша. Похоже, это не так.

Я заметил, что я должен передать путь к конфигурации при запуске ignite.sh скрипт, однако, я не уверен, как передать несколько файлов. Должен ли я создать корневой XML-файл, который по шаблону импортирует несколько конфигураций xml из нескольких местоположений, и передать этот корневой xml в ignite.sh скрипт?

Любая помощь или предложения о том, как мне следует подойти к этому?

Комментарии:

1. Боюсь, ваша базовая архитектура неверна. Конфигурация кэшей Ignite не должна зависеть от / определяться jars, присутствующими в classpath. Это звучит как волшебный трюк с развертыванием, который очень скоро начнет давать неприятные результаты.

2. Ну, да, именно поэтому я спрашиваю о направлениях. Как бы вы развернули свои два разных кэша в одном кластере?

3. Я бы создал их из кода ( Ignite.createCache() ) в зависимости от того, какая конфигурация развернута.

Ответ №1:

Я попробовал нижеприведенное решение, когда у меня были аналогичные требования.
1- Если все, что вы хотите использовать xml, то вам, по крайней мере, нужно передать один xml, определяющий компонент IgniteConfiguration. Пожалуйста, не думайте, что вы можете запустить ignite, используя всю конфигурацию Java, поскольку в конце концов конфигурация xml полностью преобразуется в код Java.
2- Итак, когда вы запускаете свой узел с базовой конфигурацией IgniteConfiguration, вы можете загрузить другой xml-файл, где у вас будут другие конфигурации компонента, такие как CacheConfiguration. Вам нужно загрузить эти компоненты, используя классические методы spring (для загрузки компонента из xml), и вы можете использовать этот загруженный компонент для создания кэша с помощью ignite, запущенного на шаге 1.